QT QWidgetmannual

来源:互联网 发布:ubuntu 如何提权 编辑:程序博客网 时间:2024/06/05 12:01

摘于:Qt library 4.8

QWidget类是所有用户界面的对象的基类

父类有: QObject 和 QPaintDevice.

子类有:Phonon::EffectWidgetPhonon::SeekSlider,Phonon::VideoPlayerPhonon::VideoWidgetPhonon::VolumeSlider,Q3ComboBoxQ3DataBrowserQ3DataViewQ3DateTimeEdit,Q3DateTimeEditBaseQ3DockAreaQ3HeaderQ3MainWindow,QAbstractButtonQAbstractSliderQAbstractSpinBoxQAxWidget,QCalendarWidgetQComboBoxQDesignerActionEditorInterface,QDesignerFormWindowInterfaceQDesignerObjectInspectorInterface,QDesignerPropertyEditorInterfaceQDesignerWidgetBoxInterface,QDesktopWidget, QDialogQDialogButtonBoxQDockWidget,QFocusFrameQFrameQGLWidgetQGroupBox,QHelpSearchQueryWidgetQHelpSearchResultWidgetQLineEdit,QMacCocoaViewContainerQMacNativeWidgetQMainWindow,QMdiSubWindowQMenuQMenuBarQPrintPreviewWidget,QProgressBarQRubberBandQSizeGripQSplashScreen,QSplitterHandleQStatusBarQSvgWidgetQTabBarQTabWidget,QToolBarQWebInspectorQWebViewQWizardPageQWorkspace,QWSEmbedWidgetQX11EmbedContainer, and QX11EmbedWidget.

每个用户界面的最小部分称为一个部件,它可以接收来自窗口系统发出的鼠标、键盘或其他事件然后在窗口绘出相应的回应。每个部件为一个矩形,它们以Z 排列,一个部件可以被父窗口或其他部件覆盖。

QWidget的构造函数为:

QWidget ( QWidget * parent = 0, Qt::WindowFlags f = 0 )

Every widget's constructor accepts one or two standard arguments:

  1. QWidget *parent = 0 is the parent of the new widget. If it is 0 (the default), the new widget will be a window. If not, it will be a child of parent, and be constrained by parent's geometry (unless you specify Qt::Window as window flag).
  2. Qt::WindowFlags f = 0 (where available) sets the window flags; the default is suitable for almost all widgets, but to get, for example, a window without a window system frame, you must use special flags.
一个没有指定父部件的部件通常是一个单独的窗体(顶层部件),这时对于setWindowTitle()和setWindowIcon()也会单独的设置。

子部件会和父部件一同显示,大部分的Qt部件被用于构成新的部件,例如,一个按钮部件能以顶层部件显示,当大部分的用户倾向于将它放入其他部件之中,例如对话框之中:


上图显示了一个QGroupBox类的部件,它以QGridLayout的布局方式将不同的部件整合在一起。

所以,如果你想要利用一个QWidget部件来整合不同的子部件则必须提供一个布局方式给你的父部件。具体可以看Layout Mannagement

组合部件

当一个部件被用做一个容器以组合一定数量的子部件时,称之为组合部件。

组合部件可以通过继承一个标准的部件类,例如QWidget或QFrame来生成,然后在继承类的构造函数中添加必要的布局和子部件,许多的Qt 实例就是采用这种方法的。