Qt进阶--多窗口概要

我是从这个教程总结的:http://c.biancheng.net/view/1874.html

多窗口有很多知识点,而且挺乱的,这里分成几点大概说一下,这种讲法还不错:

1.多窗口基本分类:

1.1.独立窗口和嵌入式窗口:

独立窗口就是指子窗口和父窗口不在父窗口中,独立窗口对象还要调用它的show()或者其他方法才能显示出来,否则只是内存中的数据;看似简单,只要创建个对象,show()一下就完事,但其实独立窗口也挺有讲究:
有专门做开头封面的Splash窗口,有专门做对话框的Dialog,还有做工具栏的ToolBar,看这里:

https://blog.csdn.net/realliyuhao/article/details/106585677

嵌入式窗口有时候更像是控件,只要添加到主窗口中就能显示;
嵌入式窗口的核心是将子窗口添加到父窗口中以及管理子窗口,看这里:

https://blog.csdn.net/realliyuhao/article/details/106611640

1.2.有父窗口的和没有父窗口的:

我们经常在构造函数中看到的QWidget *parent就是用来指定父窗口的,有父窗口的,不现实在任务栏,父窗口关闭则子窗口全关闭;没父窗口的反之.

由父窗口和子窗口引出一个东西就是父子窗口间的对话:
(也就是父子之间进行函数的调用和数据的传输).
1:子类主导对话(子类进行数据的索取和函数调用):

QWidget *QWidget::parentWidget() const:这个函数返回父窗口的指针,然后你懂的

2.父类主导对话:
更简单了,子类窗口对象都是父类创建的;

还有一个就是父子类之间的信号和槽函数的连接,自由度挺大,放到哪挺考验技术的.

2.其他:

在这里说一个模态的东西:
setWindowModality() 函数用于设置窗口的模态,只对窗口类型有用。
参数是枚举类型Qt::WindowModality的常量:
常量                     意义
Qt::NonModal             无模态,不会阻止其他窗口的输入
Qt::WindowModal     窗口对于其父窗口、所有的上级父窗口都是模态的
Qt::ApplicationModal     窗口对整个应用程序是模态的,阻止所有窗口的输入

还有一大堆设置窗口特性的函数:懒得说了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章