- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我基于 Qt 的应用程序(使用 PyQt 4.8.6 构建)中,我有一个类,它是 QtGui.QDialog 的子类:
class ModelDialog(QtGui.QDialog):
...
当我运行应用程序的用户界面时,我可以像这样显示 QDialog:
def main():
app = QtGui.QApplication(sys.argv)
dialog = ModelDialog()
dialog.exec_()
根据Qt docs和 PyQt docs , exec_()
是此 QDialog 的阻塞函数,它默认为模态窗口(根据定义,它阻止用户与应用程序中的任何其他窗口交互)。这正是正常情况下发生的情况。
然而,最近我一直在研究一种使用所有输入值的默认值来调用整个 QApplication 的方法,而不是要求用户提供任何输入。除了一个方面之外,应用程序的行为与预期一致:调用 dialog.exec_()
会导致显示模式对话框。
我能找到的唯一解决方法是捕获 showEvent
函数并立即隐藏窗口,但这仍然允许 QDialog 对象瞬间显示:
class ModelDialog(QtGui.QDialog):
...
def showEvent(self, data=None):
self.hide()
有没有办法阻止模式窗口完全显示,同时继续阻止主事件循环?我希望有这样的东西:
def main():
app = QtGui.QApplication(sys.argv)
dialog = ModelDialog()
dialog.setHideNoMatterWhat(True)
dialog.exec_()
(为此,我尝试使用QWidget.setVisible(False)
,但是dialog.exec_()
将对话框设置为可见,这是预期的到 Qt docs )
最佳答案
使用app.exec_()
而不是dialog.exec_()
。
关于python - 阻止并隐藏 QDialog : Alternative to exec_()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8319687/
我正在使用 PySide 和 PyQt 进行 GUI 开发。我一直在使用这些代码来运行 GUI 应用程序: app = QApplication(sys.argv) ex = MyWin() ex.s
PyQt 新手。有人可以向我解释为什么我们这样做: sys.exit(app.exec_()) 代替: app.exec_() sys.exit() 我已经尝试过并且都有效。问题 2:我认为 sys
我正在尝试为我的项目编写系统测试。我有一个启动各种窗口的 Controller 类。但是,我似乎无法使用 exec 和 qtbot 来控制 Windows 启动。 这是一个 MVCE: from Py
在我基于 Qt 的应用程序(使用 PyQt 4.8.6 构建)中,我有一个类,它是 QtGui.QDialog 的子类: class ModelDialog(QtGui.QDialog): .
这段向前移植 exec 的代码是如何工作的? # Implementation of exec_ is from ``six``: if PY3: import builtins ex
我正在使用自定义 QFileDialog 因为我想选择多个目录。但是 exec_ 函数很慢,我不明白为什么。我使用的是最新版本的 PyQt。 代码片段: from PyQt4 import QtGui
我的代码如下所示: app = QApplication(sys.argv) self.interface = Interface() # The figure self.fig = self.int
以下代码有效(而且非常简单): class Scrape(QApplication): def __init__(self): super(Scrape, self).__init__(Non
我正在 PyQt 中开发一个软件来编辑游戏中的图 block map - 它支持许多我的游戏独有的功能。 我的游戏主要有小 map ,但我想尝试制作更大的 map - 但不幸的是,我的编辑器似乎对更大
我是 PyQt 的新手,所以当我创建 UI 文件时,我只是复制了一个主窗口 (mainfile.ui) 并将其更改为生成另一个 UI 文件 (Intro.ui)。我知道这不是创建 UI 文件的好方法,
我是 PyQt 的新手,所以当我创建 UI 文件时,我只是复制了一个主窗口 (mainfile.ui) 并将其更改为生成另一个 UI 文件 (Intro.ui)。我知道这不是创建 UI 文件的好方法,
app = QtGui.QApplication(sys.argv) # some code app.exec_() sys.exit() 或 sys.exit(app.exec_()) # This
我有这段代码,效果很好: import sys from PyQt4 import QtGui def main_window(): app = QtGui.QApplication(sys.
我使用 Python 3 和 PyQt5。这是我的测试 PyQt5 程序,关注最后两行: from PyQt5.QtCore import * from PyQt5.QtWidgets import
我使用的是 Python 2.7 和 PyQT4。 我想隐藏一个模态 QDialog 实例,然后再次显示它。但是,当调用dialog.setVisible(false)时(例如,使用QTimer),d
3个子问题: [1] python GUI 是基于轮询的吗? 在我看来,tk 和 qtpy 都是基于轮询的,如果 gui 调用一个需要一段时间才能执行的函数,整个 gui 就会挂起。 我很久以前就了解
谁能解释一下使用 sys.exit(app.exec_()) 而不是更简单的 app.exec_() 在 PyQt 中启动 GUI 的相对优点? 我是 PyQt 的新手并且已经看过这两个示例。 最佳答
我是一名优秀的程序员,十分优秀!