Qt--中心窗口部件

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)
 
它将把小部件设置为主窗口的中心窗口部件。

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

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

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

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

QWidget * QMainWindow :: centralWidget()const

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

QTextEdit * text = centralWidget();
//设置属性,但通常不需要
...
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt是一款跨平台的图形用户界面开发框架,提供了丰富的GUI控件和功能以及跨平台的能力。PyQt和PySide是在Qt基础上开发的Python绑定库,使得我们可以使用Python语言来编写Qt应用程序。 PyQt和PySide提供了和Qt类似的功能和API,使得我们可以方便地在Python中使用Qt的各种特性,如窗口管理、布局管理器、事件处理和信号槽机制等。它们支持Qt的所有模块,因此可以利用Qt的强大功能开发出高度可定制的应用程序。 Custom Widgets是指自定义的用户界面部件,可以根据需求自己进行开发或者对现有的控件进行定制。在PyQt和PySide中,我们可以使用Qt的功能来创建自定义的控件,通过继承已有的控件类来添加新的功能或者修改控件的外观和行为。这样可以满足特定需求并增加应用程序的交互性和美观性。 开发自定义的控件需要理解Qt的事件和绘图机制,掌握Qt提供的绘图功能和控件定制的技术。我们可以使用Qt的绘图API来绘制自定义的界面元素,并且可以通过事件和信号槽来实现控件的交互性。在PyQt和PySide中,可以利用Python的特性和语法来更加方便地进行控件的开发和定制。 总之,Qt、PyQt和PySide的结合可以帮助我们快速开发跨平台的应用程序,并且可以通过自定义控件来满足特定需求。这些工具和技术的使用可以大大提高应用程序的开发效率和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值