QMAINFRAME类

admin 2022年9月15日10:52:09安全闲碎评论1 views2510字阅读8分22秒阅读模式

一、简介:

1、QMainFrame类提供了应用程序的主窗口,因为它可以添加菜单、工具条、状态栏和停靠窗口,同时也支持单文档窗口和多文档窗口,这是它和其他窗口不一样的地方。

2、QMainFrame窗口必须添加中心组件,即调用setCentralWidget (self, QWidget widget)函数添加中心组件,否则该窗口无法正常显示。

二、添加菜单:

QMainFrame内部有一个QMenuBar属性,通过self.menuBar()获取,要添加菜单,就是在这个属性中添加

代码:

menuFile=self.menuBar().addMenu('文件')action=QAction()menuFile.addAction(action)

如果要添加自定义的菜单,可以调用setMenuBar (self, QMenuBar menubar)、setMenuWidget (self, QWidget menubar)两个函数添加,此时,窗口自带的菜单控件会被替换成自定义菜单控件。

三、添加工具栏:

由于窗口可以拥有多个工具栏,因此窗口提供了

addToolBar (self, Qt.ToolBarArea area, QToolBar toolbar)addToolBar (self, QToolBar toolbar)QToolBar addToolBar (self, QString title)

三个函数添加工具栏,这些函数返回一个QToolBar对象,调用addAction()添加工具栏项目。

Qt.ToolBarArea:

Constant Value
Qt.LeftToolBarArea 0x1
Qt.RightToolBarArea 0x2
Qt.TopToolBarArea 0x4
Qt.BottomToolBarArea 0x8
Qt.AllToolBarAreas ToolBarArea_Mask
Qt.NoToolBarArea 0

默认情况下,多个工具条是一行显示,函数QMainWindow.addToolBarBreak (self, Qt.ToolBarArea area = Qt.TopToolBarArea)可以使工具栏段行显示。

四、添加状态栏:

setStatusBar (self, QStatusBar statusbar) 构造一个QStatusBar,通过该函数添加状态栏

五、添加停靠窗口:

addDockWidget (self, Qt.DockWidgetArea area, QDockWidget dockwidget)addDockWidget (selfQt.DockWidgetArea areaQDockWidget dockwidgetQt.Orientation orientation)

参数二Qt.DockWidgetArea表示停靠的位置,有六个值

Qt.LeftDockWidgetArea 0x1
Qt.RightDockWidgetArea 0x2
Qt.TopDockWidgetArea 0x4
Qt.BottomDockWidgetArea 0x8
Qt.AllDockWidgetAreas DockWidgetArea_Mask
Qt.NoDockWidgetArea 0

参数三表示水平还是垂直停靠:Qt.Horizontal Qt.Vertical

 QDockWidget *dockWidget = new QDockWidget(tr("Dock Widget"), this);     dockWidget->setAllowedAreas(Qt.LeftDockWidgetArea |                                 Qt.RightDockWidgetArea);     dockWidget->setWidget(dockWidgetContents);     addDockWidget(Qt.LeftDockWidgetArea, dockWidget);


六、保存状态与恢复状态:

saveState()与restoreState():

在某些情况,我们想暂时的改变窗口的布局,在另外一种情况下又想恢复原始状态,此时这两个函数就用上了。

保存状态时保存主窗口停靠面板,状态栏、工具栏等位置信息,比如pycharm软件里有恢复默认窗口可能会用到这两个函数。

七、其他函数:

virtual QMenu *QMainWindow::createPopupMenu() 该函数

该函数用于创建上下文菜单。上下文菜单即右键点击主菜单、工具栏或者停靠窗口所生成的菜单,该菜单的菜单项可用于设置是否显示当前已经存在的工具条和停靠窗口。
该函数是虚函数,可重写以改变右键点击后出现的菜单。重写的时候,将函数内重生成的菜单返回出来,即可覆盖默认的上下文菜单。

void setIconSize(const QSize &iconSize)

该函数用于设置工具栏上图标的尺寸,由于工具栏图标尺寸只能比图标实际尺寸小或者相等,不能放大图标,因此该函数设定的图标尺寸不能大于图标的实际尺寸。

void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle)

该函数设置工具栏上按钮的样式

Constant Value Description
Qt::ToolButtonIconOnly 0 Only display the icon.
Qt::ToolButtonTextOnly 1 Only display the text.
Qt::ToolButtonTextBesideIcon 2 The text appears beside the icon.
Qt::ToolButtonTextUnderIcon 3 The text appears under the icon.
Qt::ToolButtonFollowStyle 4 Follow the style.

4.setWindowIcon(const QIcon &) 设置窗口的图标

5.setIconSize(&QSize) 设置窗口图标尺寸

QMAINFRAME类

摘自QMainFrame类 - moisiet - 博客园 (cnblogs.com)

原文始发于微信公众号(汇编语言):QMAINFRAME类

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月15日10:52:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  QMAINFRAME类 http://cn-sec.com/archives/1296896.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: