返回介绍

QToolBar类

发布于 2019-10-04 15:03:35 字数 4685 浏览 2128 评论 0 收藏 0

QToolBar类提供乐意可以包含工具按钮这类的窗口部件的可移动的面板。 详情请见……

#include <qtoolbar.h>

继承了QDockWindow。

所有成员函数的列表。

公有成员

  • QToolBar ( constQString&label, QMainWindow *, ToolBarDock = DockTop, boolnewLine = FALSE, constchar*name = 0 ) (obsolete)
  • QToolBar ( constQString&label, QMainWindow*mainWindow, QWidget*parent, boolnewLine = FALSE, constchar*name = 0, WFlagsf = 0 )
  • QToolBar ( QMainWindow*parent = 0, constchar*name = 0 )
  • void addSeparator ()
  • QMainWindow * mainWindow () const
  • virtual void setStretchableWidget ( QWidget*w )
  • virtual void setLabel ( const QString & )
  • QString label () const
  • virtual void clear ()

属性

  • QString label- 工具条的标签

详细描述

QToolBar类提供乐意可以包含工具按钮这类的窗口部件的可移动的面板。

工具条是包含一套控制的面板,通常表现为小图标。它用于提供常用命令或者选项的快速访问。在QMainWindow里面,用户可以锚接区域里面或者之间拖动工具条。工具条也可以被拖动出任何锚接区域而作为顶级窗口自由浮动。

QToolBar是QDockWindow的特殊化,并且提供QDockWindow的所有功能。

为了使用QToolBar,你可以简单的把QToolBar创建为QMainWindow的子对象,从左到右(或者从上到下)创建许多QToolButton窗口部件(或者其他窗口部件)并且当你想要一个分隔符,请调用addSeparator()。当工具条被浮动时,标题会使用在构造函数中给定的标签。这个可以通过setLabel()来改变。

        QToolBar * fileTools = new QToolBar( this, "file operations" );
        fileTools->setLabel( "File Operations" );
        fileOpenAction->addTo( fileTools );
        fileSaveAction->addTo( fileTools );

这是从application/application.cpp实例中提取出来的,显示了把新的工具条创建为QMainWindow的子对象并且添加两个QAction。

你可以在工具条中使用绝大多数窗口部件,最常用的时QToolButton和QComboBox。

注意如果你在一个已经可视的QToolBar上创建一个新的窗口部件,这个窗口部件可以在没有明显调用show()的情况下就会自动变为可视(这和Qt中其他窗口部件容器不一样)。总之,请为你放入可视的QToolBar的所有窗口部件明显地调用show(),这个行为也许在未来会被确定下来。

QToolBar,像QDockWindow一样,可以被定位在QDockArea中或者像顶级窗口一样浮动。QMainWindow提供了四个QDockArea(上、下、左、右)。当你创建一个新工具条(像上述实例一样)作为QMainWindow的子对象时,这个工具条会被添加到上面的锚接区域。你可以通过调用QMainWindow::moveDockWindow()把它移动到其它锚接区域(或者浮动起来)。QDockarea在行中布局它们的窗口。

如果主窗口被重新定义大小,这样工具条所占的区域会变小以至于不能显示所有窗口部件,这时一个小箭头按钮(看起来像指向右的V形符号,“»”)将会根据工具条的方向显示在工具条的右面或者下面。点击这个按钮将会弹出一个菜单来显示那些“过剩的”项。

通常工具条将会得到它所需要的空间。可是,通过setHorizontalStretchable()、setVerticalStretchable()或 setStretchableWidget(),你可以告诉主窗口在指定的方向延伸工具条来填充所有可用的空间。

工具条在水平方向或者垂直方向(详细情况请参考orientation())上排列它的按钮。通常QDockArea将会为你设置正确的方向,但是你可以使用setOrientation()来自己设置它并且通过连接到orientationChanged()信号来跟踪任何变化。

你可以使用clear()方法来移除工具条的所有条目。

Toolbar (dock window)

一个浮动的QToolbar(锚接窗口)

也可以参考QToolButton、QMainWindow、Parts of Isys on Visual Design、图形用户界面设计手册:工具条和主窗口和相关类。


成员函数文档

QToolBar::QToolBar ( constQString&label, QMainWindow*, ToolBarDock = DockTop, boolnewLine = FALSE, constchar*name = 0 )

这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。

QToolBar::QToolBar ( constQString&label, QMainWindow*mainWindow, QWidget*parent, boolnewLine = FALSE, constchar*name = 0, WFlagsf = 0 )

构造一个空的水平工具条。

工具条是parent的子对象并且被mainWindow管理。labelnewLine 参数被直接传递给QMainWindow::addDockWindow()。name是对象名称并且f是窗口部件标记。

如果你想创建已经取消锚接正在浮动的工具条或者状态条中的工具条时请使用这个构造函数。

QToolBar::QToolBar ( QMainWindow*parent = 0, constchar*name = 0 )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

构造一个在parent的上面锚接区域中的父对象为parent并且名称为name的空工具条。没有任何标签并且不需要一个新行。

void QToolBar::addSeparator ()

在工具条的右面/下面添加一个分隔符。

实例:chart/chartform.cpp、fileiconview/mainwindow.cpp、helpviewer/helpwindow.cpp、qfd/fontdisplayer.cpp和scribble/scribble.cpp。

void QToolBar::clear () [虚]

删除工具条的所有子窗口部件。

QString QToolBar::label () const

返回工具条的标签。详细情况请参考“label”属性。

QMainWindow* QToolBar::mainWindow () const

返回一个管理这个工具条的QMainWindow的指针。

void QToolBar::setLabel ( constQString& ) [虚]

设置工具条的标签。详细情况请参考“label”属性。

void QToolBar::setStretchableWidget ( QWidget*w ) [虚]

如果这个工具条被需要延伸,设置窗口部件w被延伸。

因为QMainWindow正确调整它里面的锚接区域,或者因为这个工具条的isVerticalStretchable()或者isHorizontalStretchable()被设置为真,这个延伸的请求也许会发生。

如果你调用这个函数并且工具条还不是可延伸的,setStretchable()被调用。

也可以参考QMainWindow::rightJustification、setVerticalStretchable()和setHorizontalStretchable()。

实例:fileiconview/mainwindow.cpp和helpviewer/helpwindow.cpp。


属性文档

QString label

这个属性保存的是工具条的标签。

如果工具条被浮动,标签就变为工具条窗口的标题。这里没有默认标签文本。

通过setLabel()设置属性值并且通过label()来获得属性值。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文