QMainWindow Class
QMainWindow 类提供了一个主应用程序窗口。更多
Header: | #include <QMainWindow> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
继承: | QWidget |
公共类型
enum | DockOption { AnimatedDocks, AllowNestedDocks, AllowTabbedDocks, ForceTabbedDocks, VerticalTabs, GroupedDragging } |
flags | DockOptions |
属性
|
|
公共功能
QMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) | |
virtual | ~QMainWindow() |
void | addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget) |
void | addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget, Qt::Orientation orientation) |
void | addToolBar(Qt::ToolBarArea area, QToolBar *toolbar) |
void | addToolBar(QToolBar *toolbar) |
QToolBar * | addToolBar(const QString &title) |
void | addToolBarBreak(Qt::ToolBarArea area = Qt::TopToolBarArea) |
QWidget * | centralWidget() const |
Qt::DockWidgetArea | corner(Qt::Corner corner) const |
virtual QMenu * | createPopupMenu() |
QMainWindow::DockOptions | dockOptions() const |
Qt::DockWidgetArea | dockWidgetArea(QDockWidget *dockwidget) const |
bool | documentMode() const |
QSize | iconSize() const |
void | insertToolBar(QToolBar *before, QToolBar *toolbar) |
void | insertToolBarBreak(QToolBar *before) |
bool | isAnimated() const |
bool | isDockNestingEnabled() const |
QMenuBar * | menuBar() const |
QWidget * | menuWidget() const |
void | removeDockWidget(QDockWidget *dockwidget) |
void | removeToolBar(QToolBar *toolbar) |
void | removeToolBarBreak(QToolBar *before) |
void | resizeDocks(const QList<QDockWidget *> &docks, const QList<int> &sizes, Qt::Orientation orientation) |
bool | restoreDockWidget(QDockWidget *dockwidget) |
bool | restoreState(const QByteArray &state, int version = 0) |
QByteArray | saveState(int version = 0) const |
void | setCentralWidget(QWidget *widget) |
void | setCorner(Qt::Corner corner, Qt::DockWidgetArea area) |
void | setDockOptions(QMainWindow::DockOptions options) |
void | setDocumentMode(bool enabled) |
void | setIconSize(const QSize &iconSize) |
void | setMenuBar(QMenuBar *menuBar) |
void | setMenuWidget(QWidget *menuBar) |
void | setStatusBar(QStatusBar *statusbar) |
void | setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition) |
void | setTabShape(QTabWidget::TabShape tabShape) |
void | setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle) |
void | splitDockWidget(QDockWidget *first, QDockWidget *second, Qt::Orientation orientation) |
QStatusBar * | statusBar() const |
QTabWidget::TabPosition | tabPosition(Qt::DockWidgetArea area) const |
QTabWidget::TabShape | tabShape() const |
QList<QDockWidget *> | tabifiedDockWidgets(QDockWidget *dockwidget) const |
void | tabifyDockWidget(QDockWidget *first, QDockWidget *second) |
QWidget * | takeCentralWidget() |
Qt::ToolBarArea | toolBarArea(const QToolBar *toolbar) const |
bool | toolBarBreak(QToolBar *toolbar) const |
Qt::ToolButtonStyle | toolButtonStyle() const |
bool | unifiedTitleAndToolBarOnMac() const |
公共插槽
void | setAnimated(bool enabled) |
void | setDockNestingEnabled(bool enabled) |
void | setUnifiedTitleAndToolBarOnMac(bool set) |
信号
void | iconSizeChanged(const QSize &iconSize) |
void | tabifiedDockWidgetActivated(QDockWidget *dockWidget) |
void | toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle) |
重新实现的受保护函数
virtual void | contextMenuEvent(QContextMenuEvent *event) override |
virtual bool | event(QEvent *event) override |
详细说明
Qt 主窗口框架
主窗口为构建应用程序的用户界面提供了一个框架。Qt 有 QMainWindow 及其相关类用于主窗口管理。QMainWindow 有自己的布局,您可以在其中添加QToolBars、QDockWidgets、一个QMenuBar 和一个QStatusBar 。该布局有一个中心区域,可被任何类型的窗口小部件占据。下面是该布局的图片。
创建主窗口组件
中心部件通常是一个标准的 Qt 部件,如QTextEdit 或QGraphicsView 。高级应用程序也可使用自定义部件。您可以通过setCentralWidget()
设置中心窗口部件。
主窗口有单个(SDI)或多个(MDI)文档界面。您可以使用QMdiArea 作为中心部件,在 Qt 中创建 MDI 应用程序。
现在,我们将逐一研究可添加到主窗口的其他 widget。我们将举例说明如何创建和添加它们。
创建菜单
Qt 在QMenu 中实现了菜单,而 QMainWindow 则将它们保存在QMenuBar 中。QActions 添加到菜单中,菜单会将它们显示为菜单项。
您可以调用menuBar()
,返回窗口的QMenuBar ,然后使用QMenuBar::addMenu() 添加菜单,从而在主窗口的菜单栏中添加新菜单。
QMainWindow 自带默认菜单栏,但您也可以通过setMenuBar()
自行设置。如果您想实现自定义菜单栏(即不使用QMenuBar widget),可以通过setMenuWidget()
进行设置。
下面举例说明如何创建菜单:
void MainWindow::createMenus() { fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(newAct); fileMenu->addAction(openAct); fileMenu->addAction(saveAct);
当主窗口接收到上下文菜单事件时,createPopupMenu()
函数会创建弹出式菜单。默认实现会生成一个菜单,其中包含 dock 部件和工具栏中的可选中操作。您可以重新实现createPopupMenu()
以创建自定义菜单。
创建工具栏
工具栏在QToolBar 类中实现。您可以通过addToolBar()
向主窗口添加工具栏。
您可以通过将工具栏分配到特定的Qt::ToolBarArea 来控制工具栏的初始位置。您可以使用addToolBarBreak()
或insertToolBarBreak()
插入工具栏分隔线(就像文本编辑中的换行一样)来分割一个区域。您还可以使用QToolBar::setAllowedAreas() 和QToolBar::setMovable() 限制用户放置工具栏的位置。
工具栏图标的大小可通过iconSize()
获取。大小与平台有关;您可以通过setIconSize()
设置固定大小。您可以通过setToolButtonStyle()
更改工具栏中所有工具按钮的外观。
下面是创建工具栏的示例:
void MainWindow::createToolBars() { fileToolBar = addToolBar(tr("File")); fileToolBar->addAction(newAct);
创建 Dock 部件
停靠窗口部件是在QDockWidget 类中实现的。停靠窗口部件是可以停靠到主窗口中的窗口。您可以通过addDockWidget()
向主窗口添加停靠部件。
Qt::DockWidgetArea 枚举给出了四个停靠窗口部件区域:左侧、右侧、顶部和底部。您可以通过setCorner()
指定哪个停靠窗口部件区域应占据这些区域重叠的角落。默认情况下,每个区域只能包含一行(垂直或水平)dock widget,但如果启用嵌套功能(setDockNestingEnabled()
),则可以在任意方向添加 dock widget。
两个 dock 部件也可以堆叠在一起。然后使用QTabBar 来选择显示哪个部件。
我们将举例说明如何在主窗口中创建和添加 dock 部件:
QDockWidget *dockWidget = new QDockWidget(tr("Dock Widget"), this); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); dockWidget->setWidget(dockWidgetContents); addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
状态栏
您可以使用setStatusBar()
设置状态栏,但状态栏会在首次调用statusBar()
(返回主窗口的状态栏)时创建。有关如何使用状态栏的信息,请参阅QStatusBar 。
存储状态
QMainWindow 可以通过saveState()
存储其布局的状态;随后可以通过restoreState()
进行检索。存储的是工具栏和停靠窗口部件的位置和大小(相对于主窗口的大小)。
另请参阅 QMenuBar,QToolBar,QStatusBar,QDockWidget 和菜单示例。
成员类型文档
枚举 QMainWindow::DockOption
flags QMainWindow::DockOptions
该枚举包含指定QMainWindow 的停靠行为的标志。
常量 | 值 | 说明 |
---|---|---|
QMainWindow::AnimatedDocks | 0x01 | 与animated 属性相同。 |
QMainWindow::AllowNestedDocks | 0x02 | 与dockNestingEnabled 属性相同。 |
QMainWindow::AllowTabbedDocks | 0x04 | 用户可以将一个停靠部件 "放在 "另一个停靠部件的 "顶部"。这两个部件会堆叠起来,并出现一个标签栏,用于选择哪个部件可见。 |
QMainWindow::ForceTabbedDocks | 0x08 | 每个停靠区域都包含一个标签式停靠部件堆栈。换句话说,停靠区域中的停靠部件不能相邻放置。如果设置了该选项,AllowNestedDocks 就不起作用了。 |
QMainWindow::VerticalTabs | 0x10 | 主窗口两侧的两个垂直 dock 区域会垂直显示其标签。如果未设置该选项,所有停靠区域的标签页都会显示在底部。暗示 AllowTabbedDocks。另请参阅setTabPosition(). |
QMainWindow::GroupedDragging | 0x20 | 当拖动一个 dock 的标题栏时,所有标签页都会被拖动。暗示 AllowTabbedDocks。如果某些 QDockWidgets 对允许拖动的区域有限制,该枚举值就不能很好地发挥作用。(该枚举值是在 Qt 5.6 中添加的)。 |
这些选项仅控制如何在QMainWindow 中放置停靠窗口小部件。它们不会重新排列停靠窗口小部件以符合指定的选项。因此,这些选项应在任何停靠窗口部件添加到主窗口之前设置。但动画停靠(AnimatedDocks)和垂直标签(VerticalTabs)选项除外,它们可以随时设置。
DockOptions 类型是QFlags<DockOption> 的类型定义。它存储 DockOption 值的 OR 组合。
属性文档
animated : bool
该属性表示是否以动画方式操作停靠窗口部件和工具栏。
当一个停靠窗口部件或工具栏被拖动到主窗口上时,主窗口会调整其内容,以指示停靠窗口部件或工具栏被放下时的停靠位置。设置该属性会使QMainWindow 以平滑的动画移动其内容。清除该属性则会使内容卡入新位置。
默认情况下,此属性为设置。如果主窗口包含的部件在调整大小或重新绘制时速度较慢,则可以清除该属性。
设置该属性与使用setDockOptions() 设置AnimatedDocks 选项相同。
访问功能:
bool | isAnimated() const |
void | setAnimated(bool enabled) |
dockNestingEnabled : bool
该属性表示 dock 是否可以嵌套
如果该属性为false
,停靠区域只能包含单行(水平或垂直)停靠部件。如果该属性为true
,一个 dock 部件所占的区域可以向任一方向分割,以包含更多的 dock 部件。
只有在包含大量 dock 部件的应用程序中,才有必要进行 dock 嵌套。它可以让用户更自由地组织主窗口。不过,当一个停靠窗口部件被拖到主窗口上时,停靠嵌套会导致更复杂(也更不直观)的行为,因为有更多的方法可以将下拉的停靠窗口部件放置到停靠区域中。
设置该属性与使用setDockOptions() 设置AllowNestedDocks 选项相同。
访问功能:
bool | isDockNestingEnabled() const |
void | setDockNestingEnabled(bool enabled) |
dockOptions : DockOptions
该属性用于保存QMainWindow
默认值为AnimatedDocks |AllowTabbedDocks 。
访问功能:
QMainWindow::DockOptions | dockOptions() const |
void | setDockOptions(QMainWindow::DockOptions options) |
documentMode : bool
该属性用于保存标签式 dockwidget 的标签栏是否设置为文档模式。
默认值为 false。
访问功能:
bool | documentMode() const |
void | setDocumentMode(bool enabled) |
另请参阅 QTabBar::documentMode 。
iconSize : QSize
主窗口中工具栏图标的大小。
默认值是 GUI 风格的默认工具栏图标大小。请注意,所使用的图标必须至少是这个尺寸,因为图标只会按比例缩小。
访问功能:
QSize | iconSize() const |
void | setIconSize(const QSize &iconSize) |
tabShape : QTabWidget::TabShape
该属性用于保存标签式停靠窗口部件的标签形状。
默认值为QTabWidget::Rounded 。
访问函数:
QTabWidget::TabShape | tabShape() const |
void | setTabShape(QTabWidget::TabShape tabShape) |
另请参阅 setTabPosition() 。
toolButtonStyle : Qt::ToolButtonStyle
主窗口中工具栏按钮的样式。
要使工具栏按钮的样式遵循系统设置,请将此属性设置为Qt::ToolButtonFollowStyle 。在 Unix 平台上,将使用桌面环境中的用户设置。在其他平台上,Qt::ToolButtonFollowStyle 只表示图标。
默认值为Qt::ToolButtonIconOnly 。
访问功能:
Qt::ToolButtonStyle | toolButtonStyle() const |
void | setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle) |
unifiedTitleAndToolBarOnMac : bool
该属性用于确定窗口是否在 macOS 上使用统一的标题和工具栏外观。
请注意,与 Qt 4 相比,Qt 5 的实现有一些限制:
- 不支持在包含 OpenGL 内容的窗口中使用。这包括QOpenGLWidget 。
- 使用可停靠或可移动的工具栏可能会导致绘制错误,因此不建议使用。
访问函数:
bool | unifiedTitleAndToolBarOnMac() const |
void | setUnifiedTitleAndToolBarOnMac(bool set) |
成员函数文档
[explicit]
QMainWindow::QMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
用给定的parent 和指定的 widgetflags 构造一个 QMainWindow。
QMainWindow 本身会设置Qt::Window 标志,因此将始终作为顶级 widget 创建。
[virtual noexcept]
QMainWindow::~QMainWindow()
销毁主窗口。
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)
将给定的dockwidget 添加到指定的area 中。
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget, Qt::Orientation orientation)
按orientation 指定的方向将dockwidget 添加到给定的area 中。
void QMainWindow::addToolBar(Qt::ToolBarArea area, QToolBar *toolbar)
将toolbar 添加到主窗口中指定的area 中。toolbar 放在当前工具栏块(即行)的末尾。如果主窗口已管理toolbar ,则只会将工具栏移至area 。
另请参阅 insertToolBar(),addToolBarBreak() 和insertToolBarBreak()。
void QMainWindow::addToolBar(QToolBar *toolbar)
这是一个重载函数。
等同于调用 addToolBar(Qt::TopToolBarArea,toolbar)
QToolBar *QMainWindow::addToolBar(const QString &title)
这是一个重载函数。
创建QToolBar 对象,将其窗口标题设为title ,并将其插入顶部工具栏区域。
另请参见 setWindowTitle().
void QMainWindow::addToolBarBreak(Qt::ToolBarArea area = Qt::TopToolBarArea)
在给定的area 中,在所有其他对象之后添加工具栏断点。
QWidget *QMainWindow::centralWidget() const
返回主窗口的中心部件。如果未设置中心窗口部件,该函数将返回nullptr
。
另请参见 setCentralWidget()。
[override virtual protected]
void QMainWindow::contextMenuEvent(QContextMenuEvent *event)
重实现:QWidget::contextMenuEvent(QContextMenuEvent *event).
Qt::DockWidgetArea QMainWindow::corner(Qt::Corner corner) const
返回占据指定corner 的 dock widget 区域。
另请参阅 setCorner() 。
[virtual]
QMenu *QMainWindow::createPopupMenu()
返回一个弹出菜单,其中包含主窗口中存在的工具栏和停靠窗口小部件的可选中条目。如果没有工具栏和停靠窗口小部件,该函数将返回nullptr
。
默认情况下,主窗口会在用户激活上下文菜单时调用该函数,通常是右键单击工具栏或停靠窗口部件。
如果要创建自定义弹出菜单,请重新实现此函数并返回一个新创建的弹出菜单。弹出菜单的所有权将转移给调用者。
另请参阅 addDockWidget()、addToolBar() 和menuBar()。
Qt::DockWidgetArea QMainWindow::dockWidgetArea(QDockWidget *dockwidget) const
返回dockwidget 的Qt::DockWidgetArea 。如果dockwidget 尚未添加到主窗口,该函数将返回Qt::NoDockWidgetArea
。
另请参阅 addDockWidget(),splitDockWidget() 和Qt::DockWidgetArea 。
[override virtual protected]
bool QMainWindow::event(QEvent *event)
重实现:QWidget::event(QEvent *event).
[signal]
void QMainWindow::iconSizeChanged(const QSize &iconSize)
当窗口中使用的图标大小发生变化时,会发出该信号。新的图标大小在iconSize 中传递。
您可以将此信号连接到其他组件,以帮助应用程序保持一致的外观。
另请参阅 setIconSize() 。
void QMainWindow::insertToolBar(QToolBar *before, QToolBar *toolbar)
将toolbar 插入before 工具栏占用的区域,使其出现在 工具栏之前。例如,在正常的从左到右布局操作中,这意味着toolbar 将出现在水平工具栏区域中before 指定的工具栏的左边。
另请参阅 insertToolBarBreak()、addToolBar() 和addToolBarBreak()。
void QMainWindow::insertToolBarBreak(QToolBar *before)
在before 指定的工具栏之前插入工具栏分隔符。
QMenuBar *QMainWindow::menuBar() const
返回主窗口的菜单栏。如果菜单栏不存在,该函数将创建并返回一个空菜单栏。
如果希望 Mac 应用程序中的所有窗口共享一个菜单栏,请不要使用此函数来创建,因为此处创建的菜单栏将以QMainWindow 作为父级菜单栏。相反,您必须创建一个没有父菜单栏的菜单栏,然后在所有 Mac 窗口中共享。用这种方法创建一个无父菜单栏:
另请参阅 setMenuBar().
QWidget *QMainWindow::menuWidget() const
返回主窗口的菜单栏。如果尚未构建菜单栏,该函数将返回空值。
另请参见 setMenuWidget()。
void QMainWindow::removeDockWidget(QDockWidget *dockwidget)
从主窗口布局中删除并隐藏dockwidget 。请注意,dockwidget 不会被删除。
void QMainWindow::removeToolBar(QToolBar *toolbar)
从主窗口布局中删除并隐藏toolbar 。请注意,toolbar 不会被删除。
void QMainWindow::removeToolBarBreak(QToolBar *before)
删除before 指定的工具栏之前插入的工具栏断点。
void QMainWindow::resizeDocks(const QList<QDockWidget *> &docks, const QList<int> &sizes, Qt::Orientation orientation)
将docks 列表中的 dock 部件调整为sizes 列表中相应的像素大小。如果orientation 是Qt::Horizontal ,则调整宽度,否则调整 dock 部件的高度。调整尺寸时,将遵守最大和最小尺寸,而不会调整QMainWindow 本身的大小。任何额外/缺失的空间都会根据尺寸的相对权重在部件之间分配。
例如
resizeDocks({blueWidget, yellowWidget}, {20 , 40}, Qt::Horizontal);
如果蓝色和黄色窗口小部件嵌套在同一层级,它们的大小将被调整为黄色窗口小部件是蓝色窗口小部件的两倍。
如果某些部件在标签页中分组,则每个组只能指定一个部件。不在列表中的部件可能会被修改,以符合约束条件。
bool QMainWindow::restoreDockWidget(QDockWidget *dockwidget)
如果dockwidget 是在调用restoreState() 之后创建的,则恢复 的状态。如果状态已恢复,则返回true
;否则返回false
。
另请参阅 restoreState() 和saveState()。
bool QMainWindow::restoreState(const QByteArray &state, int version = 0)
恢复主窗口工具栏和 dockwidget 的state 。同时也会恢复边角设置。将version 与state 中存储的数字进行比较。如果两者不匹配,主窗口的状态保持不变,此函数返回false
;否则,恢复状态,此函数返回true
。
要恢复使用QSettings 保存的几何图形,可以使用如下代码:
void MainWindow::readSettings() { QSettings settings("MyCompany", "MyApp"); restoreGeometry(settings.value("myWidget/geometry").toByteArray()); restoreState(settings.value("myWidget/windowState").toByteArray()); }
另请参见 saveState()、QWidget::saveGeometry()、QWidget::restoreGeometry() 和restoreDockWidget()。
QByteArray QMainWindow::saveState(int version = 0) const
保存主窗口工具栏和 dockwidget 的当前状态。其中包括可通过setCorner() 设置的边角设置。version 编号作为数据的一部分保存。
objectName 属性用于标识每个QToolBar 和QDockWidget 。应确保添加到主窗口的每个QToolBar 和QDockWidget 的属性都是唯一的。QMainWindow
要恢复已保存的状态,请将返回值和version 编号传递给restoreState() 。
要在窗口关闭时保存几何图形,可以像这样实现关闭事件:
void MyMainWindow::closeEvent(QCloseEvent *event) { QSettings settings("MyCompany", "MyApp"); settings.setValue("geometry", saveGeometry()); settings.setValue("windowState", saveState()); QMainWindow::closeEvent(event); }
另请参阅 restoreState()、QWidget::saveGeometry() 和QWidget::restoreGeometry()。
void QMainWindow::setCentralWidget(QWidget *widget)
将给定的widget 设置为主窗口的中心部件。
注意:QMainWindow 拥有widget 指针的所有权,并在适当时候将其删除。
另请参阅 centralWidget() 。
void QMainWindow::setCorner(Qt::Corner corner, Qt::DockWidgetArea area)
设置给定的 dock widgetarea 占用指定的corner 。
另请参阅 corner() 。
void QMainWindow::setMenuBar(QMenuBar *menuBar)
将主窗口的菜单栏设置为menuBar 。
注:QMainWindow 拥有menuBar 指针的所有权,并在适当时候将其删除。
另请参阅 menuBar() 。
void QMainWindow::setMenuWidget(QWidget *menuBar)
将主窗口的菜单栏设置为menuBar 。
QMainWindow 获取 指针的所有权,并在适当的时候将其删除。menuBar
另请参阅 menuWidget().
void QMainWindow::setStatusBar(QStatusBar *statusbar)
将主窗口的状态栏设置为statusbar 。
将状态栏设置为nullptr
将从主窗口中删除状态栏。请注意,QMainWindow 会获取statusbar 指针的所有权,并在适当时候将其删除。
另请参阅 statusBar() 。
void QMainWindow::setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition)
将给定 dock widgetareas 的标签页位置设置为指定的tabPosition 。默认情况下,所有 dock 区域的标签页都显示在底部。
注: VerticalTabs dock 选项会覆盖本方法设置的标签页位置。
另请参阅 tabPosition() 和setTabShape()。
void QMainWindow::splitDockWidget(QDockWidget *first, QDockWidget *second, Qt::Orientation orientation)
将first dock widget 覆盖的空间分成两部分,将first dock widget 移到第一部分,并将second dock widget 移到第二部分。
orientation 指定了空间的分割方式:Qt::Horizontal 分割后,第二个停靠窗口部件位于第一个停靠窗口部件的右侧;Qt::Vertical 分割后,第二个停靠窗口部件位于第一个停靠窗口部件的下方。
注意:如果first 当前位于一个标签页停靠区,second 将作为一个新标签页添加,而不是作为first 的邻接页添加。这是因为一个标签页只能包含一个停靠部件。
注意:Qt::LayoutDirection 会影响停靠窗口小部件在划分区域两部分中的顺序。如果启用了从右到左的布局方向,dock widget 的位置就会颠倒。
另请参阅 tabifyDockWidget()、addDockWidget() 和removeDockWidget()。
QStatusBar *QMainWindow::statusBar() const
返回主窗口的状态栏。如果状态栏不存在,该函数将创建并返回一个空状态栏。
另请参阅 setStatusBar()。
QTabWidget::TabPosition QMainWindow::tabPosition(Qt::DockWidgetArea area) const
返回area 的制表符位置。
注: VerticalTabs 停靠选项会覆盖此函数返回的制表符位置。
另请参阅 setTabPosition() 和tabShape()。
[signal]
void QMainWindow::tabifiedDockWidgetActivated(QDockWidget *dockWidget)
当选择标签激活标签化 dock 部件时,就会发出该信号。激活的 dock 部件在dockWidget 中传递。
另请参阅 tabifyDockWidget() 和tabifiedDockWidgets() 。
QList<QDockWidget *> QMainWindow::tabifiedDockWidgets(QDockWidget *dockwidget) const
Returns the dock widgets that are tabified together withdockwidget 。
另请参阅 tabifyDockWidget() 。
void QMainWindow::tabifyDockWidget(QDockWidget *first, QDockWidget *second)
将second 停靠窗口部件移到first 停靠窗口部件的顶部,在主窗口中创建一个标签式停靠区域。
另请参阅 tabifiedDockWidgets().
QWidget *QMainWindow::takeCentralWidget()
删除主窗口中的中心部件。
被移除 Widget 的所有权将传递给调用者。
Qt::ToolBarArea QMainWindow::toolBarArea(const QToolBar *toolbar) const
返回toolbar 的Qt::ToolBarArea 。如果toolbar 尚未添加到主窗口,该函数将返回Qt::NoToolBarArea
。
另请参阅 addToolBar(),addToolBarBreak() 和Qt::ToolBarArea 。
bool QMainWindow::toolBarBreak(QToolBar *toolbar) const
返回toolbar 之前是否有工具栏中断。
另请参阅 addToolBarBreak() 和insertToolBarBreak() 。
[signal]
void QMainWindow::toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle)
当窗口中工具按钮的样式发生变化时,将发出该信号。新样式在toolButtonStyle 中传递。
您可以将此信号连接到其他组件,以帮助应用程序保持一致的外观。
另请参阅 setToolButtonStyle() 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.