2.1子类化QDialog
- 对于所有定义了信号和槽的类,在类定义开始处的Q_OBJECT宏都是必须的
- signals关键字实际上是一个宏,C++预处理器会在编译程序找到它之前把它转换成标准代码
- 伙伴(buddy)是一个窗口部件,它可以在按下标签的快捷键时接收焦点
QWidget::sizeHint()
:可以返回一个窗口部件所“理想”的尺寸大小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()
命名惯例的任意槽与相应的objectName
的signalName()
信号连接到一起. 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();