【问题标题】:How to create a modal window in pyqt?如何在pyqt中创建模态窗口?
【发布时间】:2014-09-02 01:21:18
【问题描述】:

我查看了文档,发现“self.setWindowModality(QtCore.Qt.WindowModal)”。
我将此函数添加到我的“init”函数中,但仍然无法创建模式对话框。

任何帮助将不胜感激,
谢谢。

【问题讨论】:

标签: python python-2.7 modal-dialog pyqt pyqt4


【解决方案1】:

QDialog 具有 setModal()here 相同。

如文档所述:

默认情况下,此属性为Falseshow() 弹出对话框为 无模式。将此属性设置为 true 等效于设置 QWidget.windowModalityQt.ApplicationModal

正如@sebastian 所说,您可以使用exec()。不过最好使用exec_(),因为sebastian 提到的也是一个python 调用。

例子:

my_dialog = QDialog(self) 
my_dialog.exec_()  # blocks all other windows until this window is closed.

如果这没有帮助,请发布您的代码,我会看看。

【讨论】:

  • 抱歉浪费了您的时间。我意识到我正在寻找的是一个系统模式对话框,我应该正确阅读文档。我将编辑问题。我很抱歉,但你知道是否可以在 ppyqt for linux 中创建一个系统模式对话框。谢谢。
  • 通过系统模式,您的意思是您的窗口应该位于所有其他应用程序窗口的顶部?这通常是个坏主意,最终会让您的最终用户感到沮丧。
  • 它实际上是一个 Linux 发行版的许可协议。
  • FWIW:我当然打算使用exec_,我只是碰巧经常使用Qt 引用。因为exec不仅是一个python调用,而且是一个关键字——exec方法无论如何都不能存在于python中。
  • 如何显示一个对话框只阻止一些窗口而不是整个应用程序?
猜你喜欢
  • 1970-01-01
  • 2012-05-16
  • 2013-01-21
  • 2011-09-08
  • 2021-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多