Qt 5 开发及实例(第5版) 课件 第3章 Qt 5布局管理_第1页
Qt 5 开发及实例(第5版) 课件 第3章 Qt 5布局管理_第2页
Qt 5 开发及实例(第5版) 课件 第3章 Qt 5布局管理_第3页
Qt 5 开发及实例(第5版) 课件 第3章 Qt 5布局管理_第4页
Qt 5 开发及实例(第5版) 课件 第3章 Qt 5布局管理_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

QT5开发及实例(第5版)第3章Qt5布局管理——分割窗口类:QSplitter分割窗口类:QSplitter【例】(简单)(CH301)一个十分简单的分割窗口功能,整个窗口由三个子窗口组成,各个子窗口之间的大小可随意拖曳改变,效果如图。分割窗口类:QSplitter开发步骤如下。(1)以“直接编写代码”(即取消勾选“Generateform”复选框)方式创建Qt项目,项目名Splitter,“ClassInformation”页基类选“QMainWindow”。(2)在上述工程的main.cpp文件中添加如下代码。(3)在main.cpp文件的开始部分加入以下头文件:#include<Qsplitter>#include<QTextEdit>#include<QTextCodec>(4)运行程序,显示效果如图。QT5开发及实例(第5版)第3章Qt5布局管理——停靠窗口类:QDockWidget停靠窗口类:QDockWidget停靠窗口QDockWidget类也是在应用程序中经常用到的,设置停靠窗口的一般流程如下。(1)创建一个QDockWidget对象的停靠窗体。(2)设置此停靠窗体的属性,通常调用setFeatures()及setAllowedAreas()两种方法。(3)新建一个要插入停靠窗体的控件,常用的有QListWidget和QTextEdit。(4)将控件插入停靠窗体,调用QDockWidget的setWidget()方法。(5)使用addDockWidget()方法在MainWindow中加入此停靠窗体。停靠窗口类:QDockWidget【例】(简单)(CH302)停靠窗口QDockWidget类的使用:窗口1只可在主窗口的左边和右边停靠;窗口2只可在浮动和右部停靠两种状态间切换,并且不可移动;窗口3可实现停靠窗口的各种状态。效果如图。停靠窗口类:QDockWidget开发步骤如下。(1)以“直接编写代码”(即取消勾选“Generateform”复选框)方式创建Qt项目,项目名DockWindows,“ClassInformation”页基类选“QMainWindow”,类名命名为DockWindows。(2)DockWindows类中只有一个构造函数的声明。位于dockwindows.h文件中,代码如下:classDockWindows:publicQMainWindow{Q_OBJECTpublic: DockWindows(QWidget*parent=0);~DockWindows();};(3)打开dockwindows.cpp文件,DockWindows类构造函数实现窗口的初始化及功能实现,具体代码。(4)在dockwindows.cpp文件的开始部分加入以下头文件:#include<QTextEdit>#include<QDockWidget>(5)运行程序,显示效果如上图。QT5开发及实例(第5版)第3章Qt5布局管理——堆栈窗体类:QStackedWidget堆栈窗体类:QStackedWidget【例】(简单)(CH303)堆栈窗体QStackedWidget类的使用,当选择左侧列表框中不同的选项时,右侧显示所选的不同的窗体。在此使用列表框QListWidget,效果如图。堆栈窗体类:QStackedWidget开发步骤如下:(1)以“直接编写代码”(即取消勾选“Generateform”复选框)方式创建Qt项目,项目名StackedWidget,“ClassInformation”页基类选“QDialog”,类名命名为StackDlg。(2)打开stackdlg.h文件,添加如下加黑代码:classStackDlg:publicQDialog{ Q_OBJECTpublic: StackDlg(QWidget*parent=0); ~StackDlg();private:

QListWidget*list;

QStackedWidget*stack;

QLabel*label1;

QLabel*label2;

QLabel*label3;};在文件开始部分添加以下头文件:#include<QListWidget>#include<QStackedWidget>#include<QLabel>堆栈窗体类:QStackedWidget(3)打开stackdlg.cpp文件,在停靠窗体StackDlg类的构造函数中添加如下代码。(4)在stackdlg.cpp文件的开始部分加入以下头文件:#include<QHBoxLayout>(5)运行程序,显示效果如图。QT5开发及实例(第5版)第3章Qt5布局管理——基本布局类:QLayout基本布局类:QLayoutQt提供了QHBoxLayout类、QVBoxLayout类及QGridLayout类等的基本布局管理,分别是水平排列布局、垂直排列布局和网格排列布局。各种布局类及继承关系如图。基本布局类:QLayout布局中常用的方法有addWidget()和addLayout()。addWidget()方法用于加入需要布局的控件,方法原型如下:voidaddWidget( QWidget*widget, //需要插入的控件对象 intfromRow, //插入的行 intfromColumn, //插入的列 introwSpan, //表示占用的行数 intcolumnSpan, //表示占用的列数 Qt::Alignmentalignment=0 //描述各个控件的对齐方式)基本布局类:QLayoutaddLayout()方法用于加入子布局,方法原型如下:voidaddLayout( QLayout*layout, //表示需要插入的子布局对象 introw, //插入的起始行 intcolumn, //插入的起始列 introwSpan, //表示占用的行数 intcolumnSpan, //表示占用的列数 Qt::Alignmentalignment=0 //指定对齐方式)基本布局类:QLayout【例】(难度一般)(CH304)通过实现一个“用户基本资料修改”的功能表单来介绍如何使用基本布局管理,如QHBoxLayout类、QVBoxLayout类及QGridLayout类,效果如图。基本布局类:QLayout本实例共用到四个布局管理器,分别是LeftLayout、RightLayout、BottomLayout和MainLayout,其布局框架如图。基本布局类:QLayout开发步骤如下。(1)以“直接编写代码”(即取消勾选“Generateform”复选框)方式创建Qt项目,项目名UserInfo,“ClassInformation”页基类选“QDialog”。(2)打开dialog.h头文件,在头文件中声明对话框中的各个控件。添加如下代码。添加如下头文件:#include<QLabel>#include<QLineEdit>#include<QComboBox>#include<QTextEdit>#include<QGridLayout>(3)打开dialog.cpp文件,在类Dialog的构造函数中添加如下代码。(4)在dialog.cpp文件的开始部分加入以下头文件:#include<QLabel>#include<QLineEdit>#include<QComboBox>#include<QPushButton>#include<QFrame>#include<QGridLayout>#include<QPixmap>#include<QHBoxLayout>(5)为了能够在界面上显示头像图片,将事先准备好的图片312.png复制到项目debug目录下,运行程序,显示效果如上图。QT5开发及实例(第5版)第3章Qt5布局管理——布局管理综合实例布局管理综合实例【例】(难度中等)(CH305)通过修改用户资料实例,介绍如何使用布局方法实现一个复杂的窗口布局,如何使用分割窗口,以及如何使用堆栈窗体。实例效果如图。(a)“基本信息”页面布局管理综合实例(b)“联系方式”页面(c)“详细资料”页面布局管理综合实例最外层是一个分割窗体QSplitter,分割窗体的左侧是一个QListWidget,右侧是一个QVBoxLayout布局,此布局包括一个堆栈窗体QStackWidget和一个按钮布局。在此堆栈窗体QStackWidget中包含三个页面,每个页面采用基本布局方式进行布局管理,如图。布局管理综合实例1.导航页实现(1)以“直接编写代码”(即取消勾选“Generateform”复选框)方式创建Qt项目,项目名Example,“ClassInformation”页基类选“QDialog”,类名命名为Content。(2)在图中所示的布局框架中,框架左侧的页面(导航页)就用Content类来实现。打开content.h头文件,修改Content类继承自QFrame类,类声明中包含自定义的三个页面类对象、两个按钮对象及一个堆栈窗体对象,添加如下代码://添加的头文件#include<QStackedWidget>#include<QPushButton>#include"baseinfo.h"#include"contact.h"#include"detail.h"classContent:publicQFrame{ Q_OBJECTpublic: Content(QWidget*parent=0); ~Content(); QStackedWidget*stack; QPushButton*AmendBtn; QPushButton*CloseBtn; BaseInfo*baseInfo; Contact*contact; Detail*detail;};(3)打开Content.cpp文件,添加如下代码。布局管理综合实例2.“修改用户基本信息”设计(1)添加该工程的提供主要显示用户基本信息界面的函数所在的文件,在Example项目名上单击鼠标右键,在弹出的快捷菜单中选择“添加新文件...”选项,在弹出的如图的对话框中选择“C++Class”选项,单击“Choose...”按钮。布局管理综合实例(2)弹出如图的对话框,在“Baseclass”下拉列表框中选择基类名为“QWidget”,在“Classname”的文本框中输入类的名称“BaseInfo”。单击“下一步”按钮,单击“完成”按钮,添加“baseinfo.h”头文件和“baseinfo.cpp”源文件。(3)打开baseinfo.h头文件,添加的代码如下。(4)打开baseinfo.cpp文件,添加如下代码。布局管理综合实例3.“显示用户的联系方式”设计(1)添加该工程的提供主要显示用户的联系方式界面的函数所在的文件,在Example项目名上单击鼠标右键,在弹出的快捷菜单中选择“添加新文件...”选项,在弹出的对话框中选择“C++Class”选项。单击“Choose...

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论