QDialog Class Reference

[QtGui module]

对了QDialog类是对话框窗口的基类。More…

继承QWidget

通过继承QAbstractPrintDialogQColorDialogQErrorMessageQFileDialogQFontDialogQInputDialogQMessageBoxQPageSetupDialogQPrintPreviewDialogQProgressDialogQWizard

Types

  • enum DialogCode { Rejected, Accepted }

Methods

  • __init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)
  • accept (self)
  • closeEvent (self, QCloseEvent)
  • contextMenuEvent (self, QContextMenuEvent)
  • done (self, int)
  • bool eventFilter (self, QObject, QEvent)
  • int exec_ (self)
  • QWidget extension (self)
  • bool isSizeGripEnabled (self)
  • keyPressEvent (self, QKeyEvent)
  • QSize minimumSizeHint (self)
  • open (self)
  • Qt.Orientation orientation (self)
  • reject (self)
  • resizeEvent (self, QResizeEvent)
  • int result (self)
  • setExtension (self, QWidget extension)
  • setModal (self, bool modal)
  • setOrientation (self, Qt.Orientation orientation)
  • setResult (self, int r)
  • setSizeGripEnabled (self, bool)
  • setVisible (self, bool visible)
  • showEvent (self, QShowEvent)
  • showExtension (self, bool)
  • QSize sizeHint (self)

Qt Signals

  • void accepted ()
  • void finished (int)
  • void rejected ()

Detailed Description

对了QDialog类是对话框窗口的基类。

一个对话窗口是顶层窗口主要用于短期任务和简要沟通与用户。 QDialogs可能是模式或无模式。 QDialogs可以提供一个return value,并且它们可以有default buttons。 QDialogs还可以有一个QSizeGrip在他们的右下角,使用setSizeGripEnabled( ) 。

注意的QDialog (并具有类型的任何其它部件Qt.Dialog)使用父控件稍微不同于其他类的Qt 。对话始终是一个顶级窗口部件,但是如果它有父,其默认位置是集中在父母的顶层widget的顶部(如果不是顶级本身) 。它也将共享父的任务栏条目。

使用的过载QWidget.setParent( )函数来改变了QDialog部件的所有权。此功能可以让您显式地设置重设父控件的窗口标志;使用重载函数将清除窗口标志指定为插件的窗口 - 系统属性(尤其是它会重置Qt.Dialog标志) 。

Modal Dialogs

A modal对话框是一个对话框,输入块在同一应用程序的其他可见窗口。用来向用户请求一个文件名,或者用于设置应用优选项对话框通常是模态的。对话框可以application modal(缺省值)或window modal

当打开一个应用程序的模态对话框,用户必须完成与对话互动,并关闭它才可以访问任何其他窗口的应用程序。窗口模式对话框只阻止访问与对话相关的窗口,允许用户继续使用其他窗口的应用程序。

显示一个模式对话框的最常用的方法是调用它的exec_()函数。当用户关闭该对话框,exec_()将提供一个有用的return value。通常情况下,要获得对话框关闭并返回相应的值,我们连接默认按钮,如:OK,到accept( )插槽和一个Cancel按钮,将reject()槽。另外,您可以拨打done( )插槽Accepted or Rejected

另一种方法是调用setModal (真)或setWindowModality(),然后show( ) 。不像exec_( )show( )立即返回控制给调用者。调用setModal (真)对进度对话框,用户必须具有与对话框交互的能力,例如特别有用取消长时间运行的操作。如果你使用show()和setModal (真)一起进行长时间的操作,则必须调用QApplication.processEvents()周期性地在加工过程中,使用户能够与对话交互。 (见QProgressDialog。 )

Modeless Dialogs

A modeless对话框是独立的在同一个应用程序运行与其他窗口的对话框。在文字处理器中查找和替换对话框是无模式往往以允许用户同时与应用程序的主窗口和对话框进行交互。

无模式对话框显示使用show(),它立即将控制返回给调用者。

如果你调用show()躲在一个对话框功能后,对话框会显示在原来的位置。这是因为,窗口管理器决定的位置,但没有明确地由程序员放置窗口。为了保持已移动用户对话框的位置,保存其位置的closeEvent()处理程序,然后将对话框的位置,再次显示它。

Default Button

对话的default按钮是按下的,当用户按下Enter键(返回)按钮。此按钮是用来表示用户接受对话框的设置,并要关闭对话框。使用QPushButton.setDefault( )QPushButton.isDefault()和QPushButton.autoDefault( )来设置和控制对话框中的默认按钮。

Escape Key

如果用户按下Esc键在对话框中,QDialog.reject( )将被调用。这将导致窗口关闭:该close event不能ignored

Extensibility

可扩展性是显示在对话框中两种方法的能力:一个局部对话框,显示最常用的选项,以及一个完整的对话框,显示所有选项。通常情况下一个可扩展的对话框最初显示为部分对话,但与More切换按钮。如果用户按下More按钮,对话框已展开。该Extension Example展示了如何使用Qt来实现可扩展的对话框。

Return Value (Modal Dialogs)

模态对话框通常在需要返回值的情况下,例如使用以指示用户是否按下OK or Cancel。一个对话框可以通过调用被关闭accept()或reject()槽,并exec_( )将返回Accepted or Rejected(如适用) 。该exec_( )调用返回对话框的结果。该结果也可从result( )如果对话框没有被破坏。

为了修改对话框的亲密行为,您可以重新实现的功能accept( )reject()或done( ) 。该closeEvent()函数只应重新实现保存对话框的位置或复盖标准接近或拒绝的行为。

Code Examples

模态对话框:

  1. void EditorWindow.countWords()
  2. {
  3. WordCountDialog dialog(this);
  4. dialog.setWordCount(document().wordCount());
  5. dialog.exec();
  6. }

无模式对话框:

  1. void EditorWindow.find()
  2. {
  3. if (!findDialog) {
  4. findDialog = new FindDialog(this);
  5. connect(findDialog, SIGNAL(findNext()), this, SLOT(findNext()));
  6. }
  7. findDialog->show();
  8. findDialog->raise();
  9. findDialog->activateWindow();
  10. }

Type Documentation

  1. QDialog.DialogCode

由模态对话框的返回值。

Constant Value
QDialog.Accepted 1
QDialog.Rejected 0

Method Documentation

  1. QDialog.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造与家长的对话parent

对话始终是一个顶级窗口部件,但是如果它有父,其默认位置是集中在母公司的顶部。它也将共享父的任务栏条目。

窗口部件标记f到传递QWidget构造函数。如果,例如,你不想这是什么按钮,在对话框的标题栏,通Qt.WindowTitleHint|Qt.WindowSystemMenuHintf

See also QWidget.setWindowFlags( ) 。

  1. QDialog.accept (self)

这种方法也是一个Qt槽与C + +的签名void accept()

隐藏模式对话框并且设置结果代码Accepted

See also reject()和done( ) 。

  1. QDialog.closeEvent (self, QCloseEvent)

从重新实现QWidget.closeEvent( ) 。

  1. QDialog.contextMenuEvent (self, QContextMenuEvent)

从重新实现QWidget.contextMenuEvent( ) 。

  1. QDialog.done (self, int)

这种方法也是一个Qt槽与C + +的签名void done(int)

关闭对话框,并将其结果代码r。如果显示此对话框exec_( ) , ()完成将导致本地事件循环来完成,并exec_( )返回r

QWidget.close( ) , ()完成删除的对话框,如果Qt.WA_DeleteOnClose标志被设置。如果对话框是应用程序的主窗口部件,应用程序终止。如果对话框是最后一个窗口关闭后,QApplication.lastWindowClosed()信号被发射。

See also accept( )reject( )QApplication.activeWindow()和QApplication.quit( ) 。

  1. bool QDialog.eventFilter (self, QObject, QEvent)

从重新实现QObject.eventFilter( ) 。

  1. int QDialog.exec_ (self)

这种方法也是一个Qt槽与C + +的签名int exec()

显示该对话框的modal dialog,阻塞,直到用户关闭它。该函数返回一个DialogCode结果。

如果对话是application modal,用户不能在同一应用程序的任何其他窗口交互,直到他们关闭对话框。如果对话是window modal,只与父窗口的交互被阻塞,而对话是开放的。默认情况下,对话框是应用程序模式。

See also open( )show( )result()和setWindowModality( ) 。

  1. QWidget QDialog.extension (self)

[

  1. bool QDialog.isSizeGripEnabled (self)
  1. QDialog.keyPressEvent (self, QKeyEvent)

]($docs-qwidget.html)

从重新实现QWidget.keyPressEvent( ) 。

  1. QSize QDialog.minimumSizeHint (self)

从重新实现QWidget.minimumSizeHint( ) 。

  1. QDialog.open (self)

这种方法也是一个Qt槽与C + +的签名void open()

显示该对话框的window modal dialog,立即返回。

此功能被引入Qt的4.5 。

See also exec_( )show( )result()和setWindowModality( ) 。

  1. Qt.Orientation QDialog.orientation (self)

[

  1. QDialog.reject (self)

这种方法也是一个Qt槽与C + +的签名void reject()

隐藏模式对话框并且设置结果代码Rejected

]($docs-qt.html#Orientation-enum)

See also accept()和done( ) 。

  1. QDialog.resizeEvent (self, QResizeEvent)

从重新实现QWidget.resizeEvent( ) 。

  1. int QDialog.result (self)

一般而言返回模式对话框的结果代码,Accepted or Rejected

Note:从使用时QMessageBox实例结果代码类型是QMessageBox.StandardButton

不要调用此函数与构建对话Qt.WA_DeleteOnClose属性。

See also setResult( ) 。

  1. QDialog.setExtension (self, QWidget extension)

extension说法有它的所有权转移给Qt的。

  1. QDialog.setModal (self, bool modal)
  1. QDialog.setOrientation (self, Qt.Orientation orientation)
  1. QDialog.setResult (self, int r)

设置模式对话框的结果代码i

Note:我们建议您通过使用定义的值之一QDialog.DialogCode

See also result( ) 。

  1. QDialog.setSizeGripEnabled (self, bool)
  1. QDialog.setVisible (self, bool visible)

从重新实现QWidget.setVisible( ) 。

  1. QDialog.showEvent (self, QShowEvent)

从重新实现QWidget.showEvent( ) 。

  1. QDialog.showExtension (self, bool)

这种方法也是一个Qt槽与C + +的签名void showExtension(bool)

  1. QSize QDialog.sizeHint (self)

从重新实现QWidget.sizeHint( ) 。


Qt Signal Documentation

  1. void accepted ()

这是该信号的默认超载。

当对话框已接受由用户或通过调用这个信号被发射accept()或done()与QDialog.Accepted的说法。

注意,此信号是not隐藏的对话框时发出hide( )或者其setVisible (假) 。这包括删除对话框,而它是可见的。

这个函数是Qt 4.1中引入。

See also finished()和rejected( ) 。

  1. void finished (int)

这是该信号的默认超载。

这个信号被发射时,对话框的result码已经被设置,或者由用户或通过调用done( )accept() ,或reject( ) 。

注意,此信号是not隐藏的对话框时发出hide( )或者其setVisible (假) 。这包括删除对话框,而它是可见的。

这个函数是Qt 4.1中引入。

See also accepted()和rejected( ) 。

  1. void rejected ()

这是该信号的默认超载。

当对话框被拒绝或者由用户或通过调用这个信号被发射reject()或done()与QDialog.Rejected的说法。

注意,此信号是not隐藏的对话框时发出hide( )或者其setVisible (假) 。这包括删除对话框,而它是可见的。

这个函数是Qt 4.1中引入。

See also finished()和accepted( ) 。