第二章:创建对话框

2.1子类化QDialog

  • 对于所有定义了信号和槽的类,在类定义开始处的Q_OBJECT宏都是必须的
  • signals关键字实际上是一个宏,C++预处理器会在编译程序找到它之前把它转换成标准代码
  • 伙伴(buddy)是一个窗口部件,它可以在按下标签的快捷键时接收焦点
  • emit是Qt中的关键字,像其他Qt扩展一样,也会被C++预处理器转换成标准的C++代码

2.2深入介绍信号和槽

  • 槽可以时虚函数,可以被重载,公有,保护的,私有的,也可以被其他C++成员函数直接调用,参数可以是任意类型.槽可以和信号链接在一起;原形为:connect(sender,SINGAL(signal),receiver,SLOT(slot));①:一个信号可以连接多个槽,②:多个信号可以连接同一个槽;③一个信号可以与另外一个信号相连接,④连接可以被移除disconnect(lcd,SIGNAL(overflow()),this,SLOT(handleMathError));

2.3快速设计对话框

  • 创建了用户接口后,setupUi()函数会自动将那些符合objectName,signalName()命名惯例的任意槽与相应的objectNamesignalName()信号连接到一起.
  • accept()reject()都可以关闭对话框,accept()槽将对话框返回结果变量设置为QDialog::Accept(其值为等于1),而reject()槽会把对话框的值设置为QDialog::Rejected(其值等于0)

2.4改变形状的对话框

  • QLayout::SetFixedSize会使用户不能再重新修改这个对话框窗体的大小
  • QWidget::sizeHint()返回布局系统试图认同的’理想大小’

main里面两种进入UI方式

MainWindow *window = new MainWindow;
window->show();

Ui::GoToCellDialog ui;
QDialog *dialog = new QDialog;
ui.setupUi(dialog);
dialog->show();
发布了96 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/L_H_L/article/details/102932471