




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 Qt 5布局管理 3.1 3.2 3.3 分割窗口QSplitter类 停靠窗口QDockWidget类 堆栈窗体QStackedWidget类 3.4 3.5 基本布局(QLayout) 【综合实例】:修改用户资料 3.1 分割窗口QSplitter类 【例】(简单) 一个十分简单的分割窗口功能,整个对话框由三个窗口组成 ,各个窗口之间的大小可随意拖曳改变,效果如图3.1所示。 3.1 分割窗口QSplitter类 本实例采用编写代码的方式实现,具体步骤如下。 (1)新建Qt Widgets Application(详见1.3.1节),项目名称为“Splitter”,基 类选择“QMainWindow”,取消“创建界面”复选框的选中状态。 (2)在上述工程的“main.cpp”文件中添加代码。 (3)在“main.cpp”文件的开始部分加入以下头文件: #include #include #include (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所示。实例文件见光盘CH302。 3.2 停靠窗口QDockWidget类 (1)新建Qt Widgets Application (详见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”文件的开始部分加入以下头文件: #include #include (5)运行程序,显示效果如图3.2所示。 3.3 堆栈窗体QStackedWidget类 【例】(简单) 堆栈窗体QStackedWidget类的使用,当选择左侧列表框中不 同的选项时,右侧显示所选的不同的窗体。在此使用列表框QListWidget,效果如 图3.4所示。 3.3 堆栈窗体QStackedWidget类 (1)新建Qt Widgets Application(详见1.3.1节),项目名称为 “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 #include #include 3.3 堆栈窗体QStackedWidget类 (3)打开“stackdlg.cpp”文件,在停靠窗体StackDlg类的构造函数中添加代码 。 (4)在stackdlg.cpp文件的开始部分加入以下头文件: #include (5)运行程序,显示效果如图3.4所示。 3.4 基本布局(QLayout) Qt提供了QHBoxLayout类、QVBoxLayout类及QGridLayout类等的基本布局管 理,分别是水平排列布局、垂直排列布局和网格排列布局。它们之间的继承关系 如图3.6所示。 3.4 基本布局(QLayout) addWidget()方法用于加入需要布局的控件,方法原型如下: void addWidget ( QWidget *widget, /需要插入的控件对象 int fromRow, /插入的行 int fromColumn, /插入的列 int rowSpan, /表示占用的行数 int columnSpan, /表示占用的列数 Qt:Alignment alignment=0 /描述各个控件的对齐方式 ) 3.4 基本布局(QLayout) addLayout ()方法用于加入子布局,方法原型如下: void addLayout ( QLayout *layout, /表示需要插入的子布局对象 int row, /插入的起始行 int column, /插入的起始列 int rowSpan, /表示占用的行数 int columnSpan, /表示占用的列数 Qt:Alignment alignment=0 /指定对齐方式 ) 3.4 基本布局(QLayout) 【例】(难度一般) 通过实现一个“用户基本资料修改”的功能表来介绍如何 使用基本布局管理,如QHBoxLayout类、QVBoxLayout类及QGridLayout类,效果 如图3.7所示。 3.4 基本布局(QLayout) 本实例共用到四个布局管理器,分别是LeftLayout、RightLayout、 BottomLayout和MainLayout,其布局框架如图3.8所示。 3.4 基本布局(QLayout) (1)新建Qt Widgets Application(详见1.3.1节),项目名称为“UserInfo”, 基类选择“QDialog”,取消“创建界面”复选框的选中状态。 (2)打开“dialog.h”头文件,在头文件中声明对话框中的各个控件。添加代 码。 添加如下的头文件: #include #include #include #include #include (3)打开“dialog.cpp”文件,在类Dialog的构造函数中添加代码。 3.4 基本布局(QLayout) (4)在“dialog.cpp”文件的开始部分加入以下头文件: #include #include #include #include #include #include #include #include (5)选择“构建”“构建项目“UserInfo“”命令,为了能够在界面上显示头像图 片,请将事先准备好的图片312.png复制到D:QtCH3CH304build- UserInfo- Desktop_Qt_5_4_0_MinGW_32bit-Debug目录下。 运行程序,显示效果如图3.7所示。 3.5 【综合实例】:修改用户资料 通过实现修改用户资料功能这一综合实例,介绍如何使用布局方法实现一个 复杂的窗口布局,如何使用分割窗口,以及如何使用堆栈窗体,效果如图3.9所 示。 (a)“基本信息”页面 3.5 【综合实例】:修改用户资料 (b)“联系方式”页面 3.5 【综合实例】:修改用户资料 (c)“详细资料”页面 图3.9 修改用户资料实例效果 3.5 【综合实例】:修改用户资料 最外层是一个分割窗体QSplitter,分割窗体的左侧是一个QListWidget,右侧 是一个QVBoxLayout布局,此布局包括一个堆栈窗体QStackWidget和一个按钮布 局。在此堆栈窗体QStackWidget中包含三个窗体,每个窗体采用基本布局方式进 行布局管理,如图3.10所示。 3.5 【综合实例】:修改用户资料 1导航页实现 (1)新建Qt Widgets Application(详见1.3.1节),项目名称为“Example”, 基类选择“QDialog”,取消“创建界面”复选框的选中状态。 (2)在如图3.10所示的布局框架中,框架左侧的页面(导航页)用Content 类实现,类名命名为“Content”。 打开“content.h”头文件,修改Content类继承自QFrame类,类声明中包含自 定义的三个页面类对象、两个按钮对象及一个堆栈窗体对象,添加代码。 (3)打开“Content.cpp”文件,添加代码。 3.5 【综合实例】:修改用户资料 2“修改用户基本信息”设计 (1)添加该工程的提供主要显示用户基本信息界面的函数所在的文件,在 “Example”项目名上单击鼠标右键,在弹出的快捷菜单中选择“添加新文件.”菜单项 ,在弹出的如图3.11所示的对话框中选择“C+ Class”选项,单击“Choose.”按钮。 3.5 【综合实例】:修改用户资料 (2)弹出如图3.12所示的对话框,在“Base class”后面的下拉列表框中选择基 类名“QWidget”,在“Class name”后面的文本框中输入类的名称“BaseInfo”。 (3)打开“baseinfo.h”头文件,添加代码。 (4)打开“baseinfo.cpp”文件,添加代码。 3.5 【综合实例】:修改用户资料 3“显示用户的联系方式”设计 (1)添加该工程的提供主要显示用户的联系方式界面的函数所在的文件, 在“Example”项目名上单击鼠标右键,在弹出的快捷菜单中选择“添加新文件.”菜 单项,在弹出的对话框中选择“C+ Class”选项。单击“Choose.”按钮,弹出对话框 ,在“Base class”后面的下拉列表框中选择基类名“QWidget”,在“Class name”后面 的文本框中输入类的名称“Contact”。 (2)单击“下一步”按钮,单击“完成”按钮,添加“contact.h”头文件和 “contact.cpp”源文件。 (3)打开“contact.h”头文件,添加代码。 (4)打开“contact.cpp”文件,添加代码。 3.5 【综合实例】:修改用户资料 4“显示用户的详细资料”设计 (1)添加主要显示用户的详细资料界面的函数所在的文件,在“Example”项 目名上单击鼠标右键,在弹出的快捷菜单中选择“添加新文件.”菜单项,在弹出的 对话框中选择“C+ Class”选项,单击“Choose.”按钮,弹出对话框,在“Base class” 后面的下拉列表框中选择基类名“QWidget”,在“Class name”后面的文本框中输入 类的名称“Detail”。 (2)单击“下一步”按钮,单击“完成”按钮,添加“detail.h”头文件和 “detail.cpp”源文件。 (3)打开“detail.h”头文件,添加代
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内经考试题及答案
- 汽修考试题及答案
- 中级财务会计(上)知到智慧树答案
- 工务维修考核试卷及答案
- 药品检查员能力提升培训班结业考试试题(附答案)
- 幼儿园教师业务考试试题及答案
- 内科考试题含答案
- 酒水饮料理论知识考核试题题库及答案
- 加氢工艺考试模拟卷及答案
- 国家基本药物培训试题及答案
- 2025年教科版新教材科学三年级上册全册教案设计(含教学计划)
- 医院药品采购与质量控制规范
- 枣庄学院《图学基础与计算机绘图》2024-2025学年第一学期期末试卷
- 2025版仓储库房租赁合同范本(含合同生效条件)
- GB 46031-2025可燃粉尘工艺系统防爆技术规范
- 2025至2030年中国纳米抛光浆料行业发展监测及发展趋势预测报告
- 养老护理员培训班课件
- 2025-2030城市矿产开发利用政策支持与商业模式创新报告
- 隔爆水棚替换自动隔爆装置方案及安全技术措施
- 近十年中职试卷及答案
- 股票k线图入门图解
评论
0/150
提交评论