QMainWindow

欢迎加入QQ群:853840665,群内分享大量资料,供大家学习

描述:QMainWindow类提供了一个主应用程序窗口。

Qt Main Window框架

主窗口为构建应用程序的用户界面提供了一个框架。Qt有用于主窗口管理的QMainWindow及其相关类。QMainWindow有自己的布局,你可以在其中添加QToolBars、QDockWidgets、QMenuBar和QStatusBar。布局有一个中心区域,可以被任何类型的小部件占用。您可以看到下图的布局。

注意:不支持创建没有中心小部件的主窗口。您必须有一个中心小部件,即使它只是一个占位符。

中心小部件通常是标准的Qt小部件,比如QTextEdit或QGraphicsView。定制小部件还可以用于高级应用程序。使用setCentralWidget()设置中心小部件。

下面对Qt Designer中的 Property Editor做一下说明

QObject  
 objectName这个属性是用来标识每个控件的,你应该确保这个属性在当前QMainWindow中的唯一性
QWidget

 

 
 windowModality

    此属性用于保存由模态控件阻塞的窗口。这个属性只对windows有意义。模态控件阻止其他窗口中的控件获取输入。此属性的值控制当控件可见时哪些窗口被阻塞。在窗口可见时更改此属性没有任何效果;首先必须hide()控件,然后再次show()。默认情况下,此属性为Qt::NonModal。

static Qt.WindowModality

ApplicationModal

窗口对应用程序是模态的,并阻塞对所有窗口的输入。

static Qt.WindowModalityNonModal
 该窗口不是模态的,也不会阻塞对其他窗口的输入。
static Qt.WindowModalityWindowModal

访问方法:

Qt::WindowModalitywindowModality() const
voidsetWindowModality(Qt::WindowModality windowModality)
 enabled

    此属性保存是否启用小部件。一般来说,启用的小部件处理键盘和鼠标事件;禁用的小部件则不会。QAbstractButton发生异常。一些小部件在被禁用时以不同的方式显示自己。例如,一个按钮可能会把它的标签画成灰色。如果您的小部件需要知道何时启用或禁用它,您可以使用changeEvent()和类型QEvent::EnabledChange一起使用。禁用小部件会隐式地禁用它的所有子部件。分别启用所有子部件,除非它们已显式禁用。默认情况下,此属性为true。

访问方法:

boolisEnabled() const
voidsetEnabled(bool)
 geometry;QRect

    此属性保存控件相对于其父部件的几何形状,不包括窗体框架。当改变几何形状时,控件(如果可见)立即接收一个move事件(moveEvent())和一个resizeEvent())。如果控件当前不可见,则保证在显示它之前接收适当的事件。如果size组件位于minimumSize()和maximumSize()定义的范围之外,那么它将被调整。

    警告:在resizeEvent()或moveEvent()中调用setGeometry()可能导致无限递归。有关windows的几何问题的概述,请参阅窗口几何文档。默认情况下,该属性包含一个取决于用户平台和屏幕几何形状的值。

访问方法:

const QRect &geometry() const
voidsetGeometry(int x, int y, int w, int h)
voidsetGeometry(const QRect &)

See also frameGeometry(), rect(), move(), resize(), moveEvent(), resizeEvent(), minimumSize(), and maximumSize().

 sizePolicy

    此属性保存控件的默认布局行为。如果有一个QLayout管理这个控件的控件,那么将使用该布局指定的size策略。如果没有这样的QLayout,则使用此函数的结果。默认策略是Preferred,这意味着控件可以自由调整大小,但更喜欢大小sizeHint()——默认尺寸返回。类似按钮的控件设置大小策略,以指定它们可以水平拉伸,但垂直固定。同样的情况也适用于lineedit控件(例如QLineEdit、QSpinBox或可编辑的QComboBox)和其他面向水平方向的控件(例如QProgressBar)。QToolButton通常是方形的,所以它们允许两个方向的增长。支持不同方向(例如QSlider、QScrollBar或QHeader)的控件仅在各自的方向上指定拉伸。能够提供滚动条(通常是QScrollArea的子类)的控件倾向于指定它们可以使用额外的空间,并且它们可以使用小于sizeHint()。

以上时官方的解释,这个属性的作用是,如果窗口控件在布局管理器中的布局不能满足我们的需求,那么可以设置该窗口控件的sizePolicy来实现布局的微调。

A. Fixed:控件具有其sizeHint所提示的尺寸且不会再改变。

B. Minimum:控件的sizeHint为控件的最小尺寸。控件不能小于这个sizeHint,但是可以

放大。

C. Maximum:控件的sizeHint为控件的最大尺寸,控件不能放大,但是可以缩小到它的最小

的允许尺寸。

D. Preferred:控件的sizeHint是它的期望尺寸,但是可以放大或者缩小

E:Expanding:窗口的控件可以缩小到minisizeHint,也可以变的比sizeHint所提示的尺寸大,但它希望能变的更大。

F.MiniumExpanding:窗口的sizeHint就是它的最小尺寸,窗口不能缩小的比这个还小,但是希望能比这个大。

E:Ignored:无视sizeHint和MinisizeHint所提示的尺寸,按照默认值设置。

注:sizeHint(布局管理中的控件默认尺寸,如果控件不在布局管理中就为无效的值)

访问方法:

QSizePolicysizePolicy() const
voidsetSizePolicy(QSizePolicy)
voidsetSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)

See also sizeHint(), QLayout, QSizePolicy, and updateGeometry().

 minimumSize

    此属性保存控件的最小大小。不能将控件的大小调整为小于最小控件大小的大小。如果控件的当前大小更小,则必须将其大小限制为最小大小。这个函数设置的最小大小将覆盖QLayout定义的最小大小。为了取消最小大小的设置,使用一个值QSize(0,0)。默认情况下,此属性包含一个0宽度和高度的大小。

访问方法:

QSizeminimumSize() const
voidsetMinimumSize(const QSize &)
voidsetMinimumSize(int minw, int minh)

 

 maximumSize见上一个属性
 sizeIncrement

    此属性保存小部件的大小增量。当用户调整窗口大小时,大小将以sizeIncrement().width()为水平步移动,sizeincrement.com .height()为垂直步移动,baseSize()为基础。首选的小部件大小为非负整数i和j。

width = baseSize().width() + i * sizeIncrement().width();
height = baseSize().height() + j * sizeIncrement().height();

注意,虽然可以为所有小部件设置大小增量,但它只影响窗口。

默认情况下,此属性包含一个0宽度和高度的大小。

警告:在Windows下,大小增量没有影响,可能会被X11上的窗口管理器忽略。所以一般不会设置这个属性。

 baseSize    此属性保存小部件的基本大小。如果小部件定义了sizeIncrement(),则基本大小用于计算适当的小部件大小。默认情况下,对于新创建的小部件,此属性包含一个0宽度和高度的大小。如果不使用sizeIncrement(),则这个属性的两个值保持为0就可以了。
 palette

    这个属性是窗体的调色板。在呈现标准组件时,窗口的样式使用这个调色板,它可以作为确保定制窗口能够与本机平台的外观保持一致的一种手段。不同的平台或不同的风格有不同的调色板是很常见的。

    当您为窗口分配一个新调色板时,这个调色板中的颜色与窗口的默认调色板组合在一起,形成窗口的最终调色板。窗口后台角色的调色板条目用于填充小部件的背景(参见QWidget::autoFillBackground),前台角色初始化QPainter的笔。

     默认值取决于系统环境。QApplication维护一个系统/主题面板,作为所有窗体的默认设置。对于某些类型的窗体(例如,在Windows XP和Vista上,所有从QMenuBar派生的类都有一个特殊的默认调色板),也可能有特殊的默认调色板。您还可以通过向QApplication::setPalette()传递自定义调色板和窗体的名称,为窗体定义默认调色板。最后,样式总是可以在指定的调色板上进行抛光(请参阅QStyle::polish())。

    QWidget将显式调色板角色从父级传播到子级。如果将画笔或颜色分配给调色板上的特定角色并将该调色板分配给窗体,该角色将传播到窗体的所有子部件,覆盖该角色的任何系统默认值。注意,除非启用了Qt::WA_WindowPropagation属性,否则调色板默认不会传播到windows(请参阅isWindow())。

 

 font
 cursor设置光标样式,可以单独给每个控件设置鼠标移动上去的样式
 mouseTracking    此属性保存是否为小部件启用鼠标跟踪。如果禁用鼠标跟踪(默认),窗体仅在鼠标移动时至少按下一个鼠标按钮时接收鼠标移动事件。如果启用了鼠标跟踪,即使没有按下按钮,小部件也会接收鼠标移动事件。
 tabletTracking是否启用平板追踪
 focusPolicy

此属性设置窗体接受键盘焦点的方式。

TabFocus——通过tabbing接受键盘焦点

ClickFocus——通过单击接受焦点

通常是通过控件的构造函数完成的。例如,QLineEdit构造函数调setFocusPolicy(Qt::StrongFocus)。

 

 contextMenuPolicy定义如何显示上下文菜单,The default value of this property is Qt::DefaultContextMenu,意味着将会调用contextMenuEvent()处理函数
 acceptDrops设置drop事件是否使能
 windowTitle

用来设置window的标题,此属性仅对顶级窗体(如窗口和对话框)有意义。如果没有设置标题,则标题基于windowFilePath。如果这两个都没有设置,那么标题就是一个空字符串。如果使用windowModified机制,窗口标题必须包含“[*]”占位符,它指示“*”应该出现在哪里。通常,它应该出现在文件名之后(例如“document1”)。txt[*]——文本编辑器”)。如果windowModified属性为false(默认值),占位符将被删除。

这个属性下还有translatable,disambiguation,comment,好像是为了国际化应用而设定的属性,以后再研究

 windowIcon如果没有设置图标,windowIcon()返回应用程序图标(QApplication::windowIcon())。
 windowOpacity更改窗体透明度的,范围1.0(不透明)——0.0(完全透明)
 toolTip设置工具提示字符串,鼠标停留在控件上的提示符。默认情况下,工具提示只显示活动窗口的子窗口部件。您可以通过在窗口上设置属性Qt::WA_AlwaysShowToolTips来更改此行为,而不是在带有tooltip的小部件上设置属性Qt::WA_AlwaysShowToolTips。如果您想控制工具提示的行为,您可以拦截事件()函数并捕获QEvent:: tooltip事件(例如,如果您想定制显示工具提示的区域)。默认情况下,此属性包含一个空字符串。
 toolTipDuration设置提示时间,默认值为-1,单位是ms
 statusTip此属性保存小部件的状态提示,当鼠标移动到窗体上,状态栏就会显示这个字符串
默认情况下,此属性包含一个空字符串。
 whatsthis

这个属性包含小部件的帮助文本。一般这个字符串要比tooltips长。把鼠标移动到相应控件上按一下shift+F1会显示这个字符串。(如果Shift+F1是某个快捷键,则失效)

默认情况下,此属性包含一个空字符串。

 accessibleName

    这个属性包含辅助技术所看到的小部件的名称,这是辅助技术(如屏幕阅读器)宣布此小部件的主要名称。   

对于大多数小部件,不需要设置此属性。例如,对于QPushButton,将使用按钮的文本。当小部件不提供任何文本时,设置此属性非常重要。例如,一个只包含图标的按钮需要设置此属性才能与屏幕阅读器一起工作。名称应该简短,并且与小部件传递的视觉信息相同。这个属性必须本地化。默认情况下,此属性包含一个空字符串

 accessibleDescription
 layoutDirection

设置布局的方向,默认是从左到右

该方法不再影响Qt 4.7以后的文本布局方向。

 autoFillBackground此属性设置控件背景是否自动填充。如果启用,此属性将导致Qt在调用paint事件之前填充小部件的背景。使用的颜色由控件调色板中的QPalette::Window color角色定义
 styleSheet设置样式表
 locale区域设置,控件如果没有设置则是父窗口的默认设置
 windowFilePath

设置窗体关联路径。

它将文件路径与窗口相关联。如果您设置了文件路径,但没有设置窗口标题,Qt将窗口标题设置为指定路径的文件名,使用QFileInfo::fileName()获得。

 inputMethodHints

设置窗体有哪些特定的输入方法提示。

这个属性只与输入控件相关。输入法使用它来检索关于输入法应该如何操作的提示。

例如,如果设置了Qt::ImhFormattedNumbersOnly标志,输入方法可能会更改其可视组件,以反映只能输入数字。

这个标识只是作为提示,输入法会忽略这个。如果要确保输入了某种类型的字符,还应该在小部件上设置QValidator。

QMainWindow 主应用程序窗口
 iconSize这个主窗口中工具栏图标的大小。
默认值是GUI样式的默认工具栏图标大小。注意,所使用的图标必须至少是这个大小,因为图标只是按比例缩小。
 toolButtonStyle主窗口中工具栏按钮的样式。
要使工具按钮的样式遵循系统设置,请将此属性设置为Qt::ToolButtonFollowStyle。在Unix上,将使用来自桌面环境的用户设置。在其他平台上,Qt::ToolButtonFollowStyle只意味着图标
 animated当一个dock widget或tool bar拖到主窗口上时,无论操纵dock widget和tool bar是否动画化,这个属性都将保持不变。设置此属性将使QMainWindow在平滑动画中移动其内容。清除此属性会导致内容快速进入新的位置。默认情况下,此属性被设置。如果主窗口中包含小部件,这些小部件在调整大小或重新绘制时速度较慢,则可以清除该属性。设置此属性与使用setDockOptions()设置AnimatedDocks选项相同。
 documentMode此属性保存选项卡dockwidgets的选项卡栏是否设置为文档模式。默认的是假的。
 tabShape此属性保存用于选项卡式dock部件的选项卡形状。
 dockNestingEnable 
 dockOptions此属性保存QMainWindow的停靠行为
默认值是AnimatedDocks | AllowTabbedDocks。
 

unifiedTitleAndToolBarOnMac

此属性保存窗口是否使用macOS上的统一标题和工具栏外观注意qt5实现与qt4相比有一些限制:不支持在windows中使用OpenGL内容。这包括QGLWidget和QOpenGLWidget。使用可停靠或可移动的工具条可能会导致绘制错误,不建议在Qt 5.2中引入此属性。

 

 

 

 

  • 10
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yzcxymz

您的打赏是众人更好的前行!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值