- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Qt5开发及实例 03章 布局管理
第三章 Qt 5布局管理 3.1 分割窗口QSplitter类 3.2 停靠窗口QDockWidget类 3.3 堆栈窗体QStackedWidget类 3.4 基本布局(QLayout) 3.1 分割窗口QSplitter类 介绍一个十分简单的分割窗口功能,整个对话框由三个窗口组成,各个窗口之间的大小可随意拖曳改变,效果如图3.1所示。 3.1 分割窗口QSplitter类 (1)新建Qt Gui应用(详见本书第1章1.3.1节),项目名称为“Splitter”,基类选择“QMainWindow”,取消“创建界面”复选框的选中状态。 (2)在上述工程的“main.cpp”文件中添加代码。 (3)在“main.cpp”文件的开始部分加入以下头文件: #includeQsplitter #includeQTextEdit #include QTextCodec (4)运行程序,显示效果如图3.1所示。 3.2 停靠窗口QDockWidget类 停靠窗口QDockWidget类也是应用程序中经常用到的,设置停靠窗口的一般流程如下。 (1)创建一个QDockWidget对象的停靠窗体。 (2)设置此停靠窗体的属性,通常调用setFeatures()及setAllowedAreas()两种方法。 (3)新建一个要插入停靠窗体的控件,常用的有QListWidget和QTextEdit。 (4)将控件插入停靠窗体,调用QDockWidget的setWidget()方法。 (5)使用addDockWidget()方法在MainWindow中加入此停靠窗体。 3.2 停靠窗口QDockWidget类 下面通过一个简单的例子来学习停靠窗口QDockWidget类的使用,窗口1只可在主窗口的左边和右边停靠;窗口2只可在浮动和右部停靠两种状态间切换,并且不可移动;窗口3可实现停靠窗口的各种状态。效果如图3.2所示。 3.2 停靠窗口QDockWidget类 (1)新建Qt Gui应用(详见本书第1章1.3.1节),项目名称为“DockWindows”,基类选择“QMainWindow”,类名命名为“DockWindows”,取消“创建界面”复选框的选中状态,如图3.3所示。 3.2 停靠窗口QDockWidget类 (2)DockWindows类说明中只有一个构造函数的说明。代码如下: class DockWindows : public QMainWindow { Q_OBJECT public: DockWindows(QWidget *parent = 0); ~DockWindows(); }; (3)打开“dockwindows.cpp”文件,DockWindows类构造函数实现窗口的初始化及功能实现,具体代码所示。 (4)在“dockwindows.cpp”文件的开始部分加入以下头文件: #includeQTextEdit #includeQDockWidget (5)运行程序,显示效果如图3.2所示。 3.3 堆栈窗体QStackedWidget类 通过一个简单的例子来学习堆栈窗体QStackedWidget类的使用,当选择左侧列表框中不同的选项时,右侧显示所选的不同的窗体。在此使用列表框QListWidget,效果如图3.4所示 3.3 堆栈窗体QStackedWidget类 (1)新建Qt Gui应用,项目名称为“StackedWidget”,基类选择“QDialog”,类名命名为“StackDlg”,取消“创建界面”复选框的选中状态,如图3.5所示。 3.3 堆栈窗体QStackedWidget类 (2)打开“stackdlg.h”文件,添加如下加黑代码: class StackDlg : public QDialog { Q_OBJECT public: StackDlg(QWidget *parent = 0); ~StackDlg(); private: QListWidget *list; QStackedWidget *stack; QLabel *label1; QLabel *label2; QLabel *label3; }; 在文件开始部分添加以下头文件: #include QListWidget #include QStackedWidget #include QLabel 3.3 堆栈窗体QStackedWidget类 (3)打开“stackdlg.cpp”文件,在停靠窗体StackDlg类的构造函数中添加代码。 (4)在stackdlg.cpp文件的开始部分加入以下头文件: #include QHBoxLayout
文档评论(0)