gpt4 book ai didi

python - PyQt 5 - 显示 Py Designer GUI 的简单代码?

转载 作者:行者123 更新时间:2023-12-01 02:48:27 24 4
gpt4 key购买 nike

似乎我在开始之前就失败了 - 我无法让 Qt 设计器生成的 GUI 在 Python 3 中启动。

我的设置:

  • Windows 10 x64 上的 Anaconda,安装了 Python 3、PyQt 5、jupyter Notebook
  • 我在 Qt Designer 中创建了一个简单的 GUI(字面意思:只有一个文本标签),名为“blob.py”,然后使用以下命令对其进行转换:“pyuic5 -o blob.py blob.ui”

在浏览了大量教程(99%专门针对与 Qt5 不兼容的 Qt4)后,我发现了以下代码,它应该是简单 Qt GUI 的“hello world”实现:

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from blob import Ui_MainWindow

class AppWindow(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.show()

app = QApplication(sys.argv)
w = AppWindow()
w.show()
sys.exit(app.exec_())

但是,当我尝试在 Jupyter Notebook 中执行它时,出现以下错误:

---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-1-804f20d6b17d> in <module>()
12
13 app = QApplication(sys.argv)
---> 14 w = AppWindow()
15 w.show()
16 sys.exit(app.exec_())

<ipython-input-1-804f20d6b17d> in __init__(self)
8 super().__init__()
9 self.ui = Ui_MainWindow()
---> 10 self.ui.setupUi(self)
11 self.show()
12

C:\Users\Dante\blob.py in setupUi(self, MainWindow)
18 self.label.setGeometry(QtCore.QRect(50, 20, 131, 16))
19 self.label.setObjectName("label")
---> 20 MainWindow.setCentralWidget(self.centralwidget)
21 self.menubar = QtWidgets.QMenuBar(MainWindow)
22 self.menubar.setGeometry(QtCore.QRect(0, 0, 545, 26))

AttributeError: 'AppWindow' object has no attribute 'setCentralWidget'

我还没有手动接触过 blob.py。

有人知道为什么 Qt Designer 生成的代码有错误吗?我错过了什么吗?

注意:启动一个简单的 PyQt 代码(即不导入 GUI,而是使用一些命令手动创建它)可以正常工作。

感谢您的热心帮助!

最佳答案

使用 Qt Designer 时,使用模板(MainWindow、Dialog、Widget),并且在实现逻辑时应使用相同的 widget。在您的情况下,您使用了 MainWindow,因此您应该使用 QMainWindow 而不是 QDialog。下面的代码是解决方案:

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from blob import Ui_MainWindow

class AppWindow(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.show()

app = QApplication(sys.argv)
w = AppWindow()
w.show()
sys.exit(app.exec_())

关于python - PyQt 5 - 显示 Py Designer GUI 的简单代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45067865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com