欢迎来到天天文库
浏览记录
ID:57059115
大小:786.00 KB
页数:28页
时间:2020-07-30
《Qt5开发及实例(第2版)-第3章 Qt 5布局管理课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章Qt5布局管理3.13.23.3分割窗口QSplitter类停靠窗口QDockWidget类堆栈窗体QStackedWidget类3.43.5基本布局(QLayout)【综合实例】:修改用户资料3.1分割窗口QSplitter类【例】(简单)一个十分简单的分割窗口功能,整个对话框由三个窗口组成,各个窗口之间的大小可随意拖曳改变,效果如图3.1所示。3.1分割窗口QSplitter类本实例采用编写代码的方式实现,具体步骤如下。(1)新建QtWidgetsApplication(详见1.3.1节),项目名称为“Splitter
2、”,基类选择“QMainWindow”,取消“创建界面”复选框的选中状态。(2)在上述工程的“main.cpp”文件中添加代码。(3)在“main.cpp”文件的开始部分加入以下头文件:#include#include#include(4)运行程序,显示效果如图3.1所示。3.2停靠窗口QDockWidget类停靠窗口QDockWidget类也是应用程序中经常用到的,设置停靠窗口的一般流程如下。(1)创建一个QDockWidget对象的停靠窗体。(2)设置此停靠
3、窗体的属性,通常调用setFeatures()及setAllowedAreas()两种方法。(3)新建一个要插入停靠窗体的控件,常用的有QListWidget和QTextEdit。(4)将控件插入停靠窗体,调用QDockWidget的setWidget()方法。(5)使用addDockWidget()方法在MainWindow中加入此停靠窗体。3.2停靠窗口QDockWidget类【例】(简单)停靠窗口QDockWidget类的使用:窗口1只可在主窗口的左边和右边停靠;窗口2只可在浮动和右部停靠两种状态间切换,并且不可移动;窗口
4、3可实现停靠窗口的各种状态。效果如图3.2所示。实例文件见光盘CH302。3.2停靠窗口QDockWidget类(1)新建QtWidgetsApplication(详见1.3.1节),项目名称为“DockWindows”,基类选择“QMainWindow”,类名命名为“DockWindows”,取消“创建界面”复选框的选中状态,如图3.3所示。3.2停靠窗口QDockWidget类(2)DockWindows类中只有一个构造函数的声明。代码如下:classDockWindows:publicQMainWindow{Q_OBJEC
5、Tpublic:DockWindows(QWidget*parent=0);~DockWindows();};(3)打开“dockwindows.cpp”文件,DockWindows类构造函数实现窗口的初始化及功能实现,具体代码。(4)在“dockwindows.cpp”文件的开始部分加入以下头文件:#include#include(5)运行程序,显示效果如图3.2所示。3.3堆栈窗体QStackedWidget类【例】(简单)堆栈窗体QStackedWidget类的使用,当选择左
6、侧列表框中不同的选项时,右侧显示所选的不同的窗体。在此使用列表框QListWidget,效果如图3.4所示。3.3堆栈窗体QStackedWidget类(1)新建QtWidgetsApplication(详见1.3.1节),项目名称为“StackedWidget”,基类选择“QDialog”,类名命名为“StackDlg”,取消“创建界面”复选框的选中状态,如图3.5所示。3.3堆栈窗体QStackedWidget类(2)打开“stackdlg.h”文件,添加如下加黑代码:classStackDlg:publicQDialog{
7、Q_OBJECTpublic:StackDlg(QWidget*parent=0);~StackDlg();private:QListWidget*list;QStackedWidget*stack;QLabel*label1;QLabel*label2;QLabel*label3;};在文件开始部分添加以下头文件:#include#include#include3.3堆栈窗体QStackedWidget类(3)打开“stackdlg.cpp”文件,在停靠
8、窗体StackDlg类的构造函数中添加代码。(4)在stackdlg.cpp文件的开始部分加入以下头文件:#include(5)运行程序,显示效果如图3.4所示。3.4基本布局(QLayout)Qt提供了QHBoxLayout类、QVB
此文档下载收益归作者所有