- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何在以下代码中接收关闭事件?
class Main(QMainWindow):
def __init__(self, parent=None):
super(Main, self).__init__(parent)
self.view = QUiLoader().load("sample.ui", self)
self.view.show()
def closeEvent(self, e):
print "close event recieved"
def main():
app = QApplication(sys.argv)
a=Main()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
如果我使用 pyside-uic 将 sample.ui 转换为 sample.py 并将其导入 main.py,那么我就能够接收到关闭事件。
from sample import Ui_MainWindow
class Main(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(Main, self).__init__(parent)
self.setupUi(self)
def closeEvent(self, e):
print "close event recieved"
app = QApplication(sys.argv)
a=Main()
a.show()
sys.exit(app.exec_())
最佳答案
第二个示例之所以有效,是因为它有效地成为了 Qt Designer 中顶级类的子类。相比之下,第一个示例使用组合而不是子类化,它将所有 gui 元素放在一个内部 namespace 中。 Main
类只是一个容器,充当 view
小部件的父级,并且从未实际显示(这反过来意味着它不会接收任何关闭事件) .
在 PyQt 中,uic
模块有几个功能可以让您解决这些问题,但目前 PySide 中没有类似的功能。相反,您必须推出自己的功能。参见 this answer有关如何执行此操作的说明。
或者,您可以将 Qt Designer 中的顶级类更改为 QWidget
,然后使 view
成为您的 Main
类。不过,这比上述方法灵活得多。
关于python - 使用 QUiLoader() 加载时如何接受 MainWindow 的关闭事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28127712/
我正在尝试使用 QUiLoader 加载包含自定义小部件的 ui 文件。 我的自定义小部件(称为 CustomButton)继承自 QPushButton。 ui 文件已加载并放入我的主布局中,但所有
如果需要动态加载.ui文件,可以使用QUiLoader机制。但是,如果您在 .ui 文件中使用外部资源(如果 .ui 文件中有类似 的内容),Qt 将不会加载它。 即如果您在 Qt Designer
PySide2(5.6.0~a1) Qt UI 文件加载器返回一个空窗口,其中 PyQt5 加载器工作正常。你能向我解释一下我错在哪里吗? 不工作的 PySide2 版本: import sys fr
我正在尝试将 PySide PyQtGraph 小部件嵌入到使用 QT Creator 创建的 GraphicsView 窗口中。但是,当我导入 UI 文件并使用 QT Creator 中的“升级到”
我刚开始学习 Qt,我正在尝试使用这个 QUiLoader 创建一个简单的小部件。但我收到此错误:“设计师:在第 1 行第 0 列读取 UI 文件时发生错误:文档过早结束。” #include #i
我有: from PySide import QtGui, QtUiTools 有什么区别: ui_file = QtCore.QFile('my_ui.ui') ui_file.open(QtCo
我正在使用 QUiloader 动态加载 .pro 项目文件中未列出的 .ui 文件。 到目前为止一切顺利。问题是 lupdate 只翻译它在 .pro 文件下看到的内容。我正在使用以下命令运行它:
Widget::Widget(QWidget *parent) : QWidget(parent) { file.open(QFile::ReadOnly); QWidget *w =
如何在以下代码中接收关闭事件? class Main(QMainWindow): def __init__(self, parent=None): super(Main, se
我有一个 PySide 应用程序,我正在研究使其与 PyQt4 兼容。显然这应该不会太难,但我想尽量减少必要的代码更改次数。我遇到的最大差异(影响我的程序)是 PyQt 不包装 QUiLoader 类
我正在使用 Qt 开发一个 C++ 应用程序。我想在我的代码中使用 Qt Designer ui 文件,因为它是(在 XML 中)而不是编译代码和硬编码。我正在使用此 URL 中的示例代码。 link
看来我在这里遗漏了什么。难道不能从 QWidget 转换为 QDialog 吗? QUiLoader loader; QFile file("../../plugin/ui/settings.ui")
我是一名尝试 python gui 开发的业余爱好者(python 3、PySide2、QtDesigner)。我的代码运行良好,我只是想更好地理解一些东西。 所有教程都像这样加载用户界面(在构造函数
我使用 Qt5-Designer 创建了一个 UI,我在运行时通过调用 QUiLoader().load(qfile_object, this); 像 charm 一样工作,但现在我已经将一些 QLa
在 Win10 和 Python 3.6.6 上使用 VS Code。 此链接提供了在我正在使用的升级小部件上创建图形的相同方法: https://stackoverflow.com/a/564923
我真的很难将插槽从 Python 连接到 Qt Designer UI 文件。我已经完成了所有可以在 PySide 上找到的教程(例如:http://zetcode.com/gui/pysidetut
这个问题在这里已经有了答案: How do I load children from .ui file in PySide? (1 个回答) 关闭去年。 所以我有一个应用程序,我正在考虑从 PyQt
我是一名优秀的程序员,十分优秀!