实用的QWidget属性(Qt::WidgetAttribute)

此枚举类型用于指定各种小部件属性。属性是用QWidget::setAttribute()设置和清除的。用QWidget::testAttribute()查询是否设置了某种属性。有些属性特殊便捷函数可以设置。以下是比较实用的属性:

  • Qt::WA_AcceptDrops:接受拖放,QWidget::setAcceptDrops()是此设置的便捷函数。
  • Qt::WA_AlwaysShowToolTips:设置窗口(注意是窗口,当QWidget作为子部件时无效)为非活动时也显示提示信息。(setToolTip()设置了窗口提示信息)
  • Qt::WA_CustomWhatsThis:设置小部件在“这是什么?”模式中继续正常运行。
  • Qt::WA_DeleteOnClose:QWidget关闭时被delete。
  • Qt::WA_Disabled:设置小部件(注意是小部件,对窗口无效)被禁用(相对于调用setEnabled(false);)。
  • Qt::WA_DontShowOnScreen:不显示,相当于调用hide()。
  • Qt::WA_ForceUpdatesDisabled:禁用更新(相当于调用QWidget::setUpdatesEnabled())。
  • Qt::WA_Hover:当鼠标进入或离开小部件时,强制Qt生成绘制事件。此功能通常在实现自定义样式时使用。
  • Qt::WA_InputMethodEnabled:启用亚洲语言的输入法。创建自定义文本编辑小部件时必须设置。
  • Qt::WA_KeyboardFocusChange:当用户使用键盘(tab、backtab或快捷键)时更改焦点。用于顶层窗口设置。
  • Qt::WA_LayoutOnEntireRect:小部件希望QWidget的布局对整个QWidget::rect()操作,而不仅仅是在QWidget::contentsRect()上。
  • Qt::WA_MouseNoMask:使小部件接收整个小部件的鼠标事件,而不考虑当前设置的掩码,覆盖QWidget::setMask()。这不适用于顶层窗口。
  • Qt::WA_MouseTracking:启用鼠标跟踪。
  • Qt::WA_NoChildEventsForParent:小部件不希望将ChildAdded或ChildRemoved事件发送到其父级。
  • Qt::WA_NoChildEventsFromChildren:小部件不希望接收从其子部件发送的ChildAdded或ChildRemoved事件。
  • Qt::WA_NoMousePropagation禁止将鼠标事件传播到小部件的父级。默认情况下禁用此属性。
  • Qt::WA_TransparentForMouseEvents:启用时,此属性将禁用向小部件及其子部件传递鼠标事件。默认情况下禁用此属性。
  • Qt::WA_NoSystemBackground:小部件没有背景,即当小部件接收到绘制事件时,背景不会自动重新绘制。窗口设置这个效果就是全黑。
  • Qt::WA_OpaquePaintEvent:小部件在接收到绘制事件时绘制其所有像素。因此,在生成绘制事件之前,不需要更新、调整大小、滚动和焦点更改等操作来擦除小部件。
  • Qt::WA_PaintUnclipped:使所有在此小部件上操作的QPainter释放。有设置了Qt::WA_PaintOnScreen标志的小部件才支持此标志。
  • Qt::WA_QuitOnClose:小部件作为最后一个接受closeEvent()时,使Qt退出应用程序。可以使用QApplication::quitOnLastWindowClosed属性修改此行为。默认情况下,该属性为Qt::Window类型的所有小部件设置。
  • Qt::WA_RightToLeft:小部件的布局方向是从右向左。
  • Qt::WA_StaticContents:小部件改变大小时将重绘事件限制在之前没显示的部分。
  • Qt::WA_TranslucentBackground:指示小部件应具有半透明背景,即小部件的任何非不透明区域将是半透明的,因为小部件将具有alpha通道。设置此标志会导致设置WA_NoSystemBackground。在Windows上,小部件还需要设置Qt::FramelessWindowHint窗口标志。
  • Qt::WA_WindowPropagation:使顶层窗口从其父窗口继承字体、调色板和区域设置。

猜你喜欢

转载自blog.csdn.net/kenfan1647/article/details/115049233