第4章布局管理(免费阅读).ppt

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

文档评论(0)

zilaiye + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档