http://blog.csdn.net/qter_wd007/article/details/7028920

Qt程序中的主窗口通常具有一个中心窗口部件。从理论上来讲,任何继承自QWidget的类的派生类的实例,都可以作为中心窗口部件使用。

  • 几种常见情形

QMainWindow的中心区域可以被任意种类的窗口部件所占用。下面给出的是可能的情形。

⒈ 使用标准的Qt窗口部件(Standard Widget)

像QWidget、Qlabel以及QTextEdit等等这样的标准窗口部件都可以用作中心窗口部件。

⒉ 使用自定义窗口部件(User-Define-Widget)

有时候,某些有特殊要求的应用程序需要在自定义窗口部件中显示数据,你可以把自定义的窗口部件作为中心窗口部件。例如,你的绘图编辑器程序程序就可以使用类似名为PhotoEditor的自定义窗口部件作为自己的中心窗口部件。

3. 使用一个带布局管理器的普通Widget

有时候,应用程序的中央区域会被许多窗口部件所占用。这时就可以通过使用一个作为所有这些其他窗口部件父对象的QWidget,以及通过使用布局管理器管理这些子窗口部件的大小和位置来完成这一特殊情况。

4. 使用切分窗口(QSplitter)

其实,这种情况是上一种情况的一个例子。多个窗口部件一起使用的另一种方法是使用QSplitter。我们把QSplitter作为一个容器,在其中容纳其它的窗口部件,这时的中心窗口部件就是一个QSplitter。QSplitter会在水平方向或者竖直方向上排列它的子窗口部件,用户可以利用切分条(splitter handle)控制他们的尺寸大小。切分窗口可以包含所有类型的窗口部件,包括其他切分窗口。

5. 使用多文档界面工作空间(QMdiArea)

如果应用程序使用的是多文档界面,那么它的中心区域就会被QMdiArea窗口部件所占据,并且每个多文档界面窗口都是它的一个子窗口界面。QMdiArea是在Qt4.3以后引入的一个支持多文档应用的类。

6. 使用工作空间部件(QWorkspace)

这种情况通常用于多文档应用程序中,这时应用程序主窗口的中心部件是一个QWorkspace部件或者它的子类化部件。但这种方法在Qt4.5以后将被废弃。后面我们还会讲到它。

  • 创建和使用

一个Qt主窗口应用程序必须有一个中心窗口部件(Central Widget)。当你采用Qt Designer创建主窗口时,默认情况下,系统已经为你创建了一个中心窗口部件,它是子类化QWidget的。

结合代码可以方便的设置中心窗口部件,可以调用主窗口类的setCentralWidget()方法,它的原型如下:

void QMainWindow::setCentralWidget ( QWidget * widget )
 
它将把widget设置为主窗口的中心窗口部件。

创建中心窗口部件完整的代码示例如下:

QTextEdit * text;
text = new QTextEdit(this);
setCentralWidget(text);

Qt应用程序的主窗口管理着中心窗口部件,它会在合适的时候销毁这个中心窗口部件。每次程序调用setCentralWidget()方法时,先前存在的中心窗口部件将被新的所替换,而且主窗口会销毁原来的部件,无需用户处理。

要想在程序中获得并使用、设置中心窗口部件也很简单,通过调用主窗口类的centralWidget()方法即可实现,它的函数原型如下:

QWidget * QMainWindow::centralWidget () const

它将返回主窗口的中心窗口部件,如果中心窗口部件不存在,它将返回0。一个完整的示例代码如下:

QTextEdit * text = centralWidget();
//设置属性,但通常不需要
..

【Qt开发】设置中心窗口 setCentralWidget的更多相关文章

  1. QT开发小技巧-窗口处理(一)

    this->setWindowFlags(Qt::WindowCloseButtonHint); // 仅保留关闭按钮 this->setAttribute(Qt::WA_DeleteOn ...

  2. Ubuntu 12.04下搭建Qt开发环境

    http://download.qt.io/official_releases/qt/ Ubuntu 环境下Gtk与Qt编译环境安装与配置(系统环境是Ubuntu 12.04) 1.配置基础开发环境G ...

  3. qt学习教程1.qt开发环境搭建

    qt学习教程1.qt开发环境搭建 首先下载qt 下载地址:http://download.qt.io/archive/qt/ 此教程使用的版本为5.1.1 下载好后,打开安装包,然后点下一步 选择一个 ...

  4. 使用Qt开发绘制多个设备的流量曲线图(附带项目图)

    一.说明: 在实际项目中,主要是使用Qt开发CS程序,当然主要是客户端.公司项目中有这个需求是实时显示多个设备的流量曲线图,设备将流量信息发给服务端,服务端再将信息通过Socket发给Qt客户端,Qt ...

  5. QT开发环境安装配置教程

    QT开发环境安装配置教程 分类: QT2012-11-29 23:31 35366人阅读 评论(12) 收藏 举报 Linux版的直接在ubutnu软件中心输入QT,安装响应的Designer,Cre ...

  6. QT开发环境搭建

    一.Qt发展史 1991年,由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架: 2008年,Nokia从Trolltech公司收购Qt, 并增加LGPL的授权模式: 2011年,Digia从N ...

  7. QT 创建主窗口 MainWindow 实例

    1. 2. mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include & ...

  8. CAD控件:QT开发使用控件入门

    1. 环境搭建: 3 1.1. 安装Qt 3 1.2. 安装Microsoft Windows SDK的调试包 6 2. QT中使用MxDraw控件 7 1.3. 引入控件 7 3. 打开DWG文件 ...

  9. 【Qt开发】【ARM-Linux开发】 QT在ARM上显示字体的问题

    在PC机上利用QT开发的应用程序在设置字体时,在PC上运行,可根据自己的设置,字体随之变大或变小.而移植到ARM上运行时发现,显示字体与所设置的字体不用,字体普遍偏小.经过上网搜索发现,是环境变量字库 ...

随机推荐

  1. C#任务Task

    完整调用 TaskCreationOptions tcOptions = TaskCreationOptions.PreferFairness | TaskCreationOptions.LongRu ...

  2. 校内题目T2691 桶哥的问题——送桶

    这是一道校内题目,但迷路的蒟蒻们同样被欢迎来此学习QWQ 题目描述: 题目背景 @桶哥本校——皎月pks大佬OrzOrz 买完了桶,桶哥要去送桶. 题目描述 桶哥买了nn个桶, 他要将这些桶送去nn个 ...

  3. 解读sam格式文件

    1,SAM文件格式介绍 SAM(The Sequence Alignment / Map format)格式,即序列比对文件的格式,详细介绍文档:http://samtools.github.io/h ...

  4. TDD之断言验证System.out.print输出

    业务类: public class OutDemo { public void print(String content) { System.out.print(content); } } 测试类: ...

  5. c语言模块化编程

    C语言模块化编程(封装) 模块即是一个.c 文件和一个.h 文件的结合,头文件(.h)中是对于该模块接口的声明.模块化的实现方法和实质:将一个功能模块的代码单独编写成一个.c文件,然后把该模块的接口函 ...

  6. PyQt4解析HTML Dom

    环境: Windows 10 Python 2.7.10 0x01 安装PyQt4 在这个页面下载,注意选对版本. https://riverbankcomputing.com/software/py ...

  7. 一个IP,一个linux服务器,两个项目,两个域名;如何将两个域名配置到同一个IP的两个项目中。

    一.现有资源: 1.阿里云centOS6.5服务器: 2.安装tomcat8.0+JDK: 3.两个不同maven项目的war包,项目名分别为cloud.am: 4.两个域名http://www.lu ...

  8. 浏览器主页在不知情的情况下设置为duba.com和newduba.cn

    原来是安装了“驱动精灵”. 真是个垃圾! 不通知用户的情况下,自动给锁定主页. 真TMD恶心 离倒闭不远了,现在只能通过这种方式来获取流量.

  9. ex1.c

  10. 容器适配器————heap

    堆(heaps)不是容器,而是一种特别的数据组织方式.堆一般用来保存序列容器. 堆是一个完全二叉树,每个节点与其子节点位置相对.父节点总是大于或等于子节点,这种情况下被叫作大顶堆,或者父节点总是小于或 ...