Qt+Creator快速入门-----第三章(窗口部件)学习总结


QMainWindow是带有菜单栏和工具栏的主窗口类,QDialog是各种对话框的基类,而他们全部继承自QWidget(被称为基础窗口部件)。

3.1基础窗口部件QWidget

QObject类是所有支持Qt对象模型的对象的基类,QPaintDevice类是所有可以绘制的对象的基类。

    QDialog *dialog=new QDialog(this);//定义了一个指向QDialog类对象的指针变量
    dialog->show();

使用new操作符为控件分配空间,没有使用delete进行释放,是因为在Qt中销毁父对象时会自动销毁子对象。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    w.show();

    return a.exec();
}

只有程序进入主事件循环后才能接收事件,而show函数会触发显示事件,只有在完成a.exec函数调用进入消息循环后界面才能正常显示。

3.2对话框QDialog

QDialog类时所有对话框窗口类的基类,分为模态(modal)和非模态(modeless)。

模态对话框就是在没有关闭它之前,不能再同一个应用程序的其他窗口进行交互。

方法一:
QDialog dialog0(this);//定义一个对象 dialog0.exec();//模态对话框的实现方式
方法二:
QDialog *dialog=new QDialog(this);
dialog->setModal(true);
dialog->show();
方法一和二的区别是:方法二主窗口也会显示出来,这是因为调用完show()函数后会立即将控制权交给
调用者,程序会继续执行下去,二调用exec函数只有当对话框被关闭时才返回。

认识信号和槽

QT中使用信号和槽机制来完成对象之间的协同操作,信号和槽都是函数,比如单击窗口上的一个按钮后想要弹出一个对话框,那么可以将这个按钮的单击信号和自定义的槽关联起来,再这个槽中创建一个对话框并显示它。

QT