AttributeError:QDialog对象没有属性setCentralWidget

2023-12-14

我正在尝试使用 QT Designer 创建 GUI。我已使用以下教程将 .ui 设计器文件转换为 .py 文件:http://pyqt.sourceforge.net/Docs/PyQt5/designer.html.

我有以下代码:

#
# Created by: PyQt5 UI code generator 5.7
#
# WARNING! All changes made in this file will be lost!
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QDialog

class Ui_ImageDialog(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(160, 200, 191, 151))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(450, 200, 191, 151))
        self.pushButton_2.setObjectName("pushButton_2")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(150, 70, 501, 101))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 0, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 0, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(127, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
        self.label.setPalette(palette)
        font = QtGui.QFont()
        font.setPointSize(72)
        self.label.setFont(font)
        self.label.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.label.setObjectName("label")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Open Input File:"))
        self.pushButton_2.setText(_translate("MainWindow", "Run"))
        self.label.setText(_translate("MainWindow", "Happy Scraping"))

app = QApplication(sys.argv)
window = QDialog()

ui = Ui_ImageDialog()
ui.setupUi(window)

window.show()
sys.exit(app.exec_())

但是,当我运行此脚本时,出现以下错误:

File "/Users/tituskex/scrapeUI.py", line 42, in setupUi
MainWindow.setCentralWidget(self.centralwidget)
AttributeError: 'QDialog' object has no attribute 'setCentralWidget'

Q:有谁知道如何解决这一问题?


当您使用 qt-designer 时,您可以选择要设计的小部件类型:

enter image description here

例如,您选择了主窗口,因此您必须使用 QMainWindow 来实现它。

#
# Created by: PyQt5 UI code generator 5.7
#
# WARNING! All changes made in this file will be lost!
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow

class Ui_ImageDialog(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(160, 200, 191, 151))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(450, 200, 191, 151))
        self.pushButton_2.setObjectName("pushButton_2")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(150, 70, 501, 101))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 0, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 0, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(127, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
        self.label.setPalette(palette)
        font = QtGui.QFont()
        font.setPointSize(72)
        self.label.setFont(font)
        self.label.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.label.setObjectName("label")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Open Input File:"))
        self.pushButton_2.setText(_translate("MainWindow", "Run"))
        self.label.setText(_translate("MainWindow", "Happy Scraping"))

app = QApplication(sys.argv)
window = QMainWindow()

ui = Ui_ImageDialog()
ui.setupUi(window)

window.show()
sys.exit(app.exec_())

enter image description here

如果你想实现一个QDialog,你必须选择一些对话框(底部有按钮的对话框,右侧有按钮的对话框或没有按钮的对话框)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AttributeError:QDialog对象没有属性setCentralWidget 的相关文章

随机推荐

  • 使用 PHP ftp_get() 检索带有通配符文件名的文件

    我在 FTP 上有一个具有动态文件名的文件 该架构看起来像 ABCD 2 EFGH YYMMDD YYMMDD randomnumber TXT 日期 YYMMDD 反映前一天和当天以及randomnumbervalue 是文件中记录的计数
  • Vim - 如果文件包含特定字符串,则阻止保存/写入文件

    我想阻止 Vim 保存包含以下文本的文件 style gt 这可能位于文件中的多个位置 如果它能提出诸如 停止将样式内联 之类的错误消息 那就太好了 那也很棒 Thanks PS 我希望在尝试写入文件时触发此阻止操作 w One way 做
  • 如何为适合不同类别的标记显示不同的图标?

    我正在尝试制作一个谷歌地图 它允许用户勾选一个类别并显示这些特定位置 我已经让那部分工作了 http thedenvillehub com test hs adv scripts test html 我想做的是为每个类别提供不同的图标 一个
  • IO6 不调用 -(BOOL)shouldAutorotate

    我的应用程序中有一些我不想支持方向的视图 在didFinishLaunchingWithOptions我添加导航 UINavigationController nav UINavigationController alloc initWit
  • Keras 和错误:使用序列设置数组元素

    我在神经网络中输入多个数据源时遇到问题 我的数据框是 0 1 2 3 4 0 True True False 3 1 False True True 1 输入与前 4 列相关 输出与最后一列相关 当我训练我的神经网络时 我得到Setting
  • 如何自定义 LESS 生成的 CSS 以包含 Font Awesome?

    我要定制引导程序的CSS通过分层字体真棒作为替代品Bootstrap 默认字形 如何自定义 LESS 生成的 CSS 以包含 Font Awesome 并且在更新核心 Bootstrap 文件时不会中断 Note Font Awesome
  • 连接到我的程序时出现奇怪的行为

    我正在使用 Twisted 来实现某种服务器 当我测试它时 它收到的第一行总是很奇怪 Starting Server New connection from 192 168 1 140 192 168 1 140 NAME Blurr 19
  • 在 SQL Server 中,如何通过链接服务器连接查询 Oracle Timestamp 列?

    我在 oracle 中进行的查询不适用于带有 sql server 2008 的链接服务器 为链接服务器 ORACLE 提供的 OLE DB 提供程序 MSDAORA 列 DATETIME INS 的元数据无效 数据类型不是 支持的 查询
  • 终极清洁/安全功能

    我有很多用户输入 GET and POST 此刻我总是写mysql real escape string GET var 我想知道你是否可以制作一个功能来保护 转义和清理 GET POST立即数组 因此您不必每次处理用户输入等时都处理它 我
  • 实体框架存储过程和 POCO

    我需要有关使用 Entity Framwork 4 x 存储过程将数据返回到 POCO 对象的建议 我不想将数据从实体对象复制到 POCO 对象 我想执行一个存储过程并将数据直接加载到我的 POCO 类中 有没有办法做到这一点 我是否需要像
  • Collections.sort(...) 是如何工作的?

    需要明确的是 我试图找出 Collections sort list new MyComp 方法如何按顺序调用比较方法 我有一个包含员工及其个人号码 k 的 LinkedList 数字是 1 2 3 4 5 6 MyComparator 中
  • Drupal 共享表,但来自另一个数据库

    我有一个包含数百个站点的 Drupal Multisite 我想共享一些表格 例如横幅和角色 这样我就不必在更改横幅时更新数百个站点 例如 我知道这可以使用 settings php 中的这些字符串来完成 db url mysql user
  • JTextArea 中特定文本的 ActionListener?

    我的应用程序中有一个聊天组件 其中有一个JTextArea在上面 现在 如何为特定文本 例如student xxxx 添加类似ActionListener 的事件 因此 当我单击该文本 student xxxx 时 就会发生一些事情 谢谢
  • Spring Boot 和 Spring Data:Hibernate 会话如何管理?

    我目前正在开发一个使用 Spring Boot 和 Spring Data 的应用程序 其JpaRepository接口 准确地说 是与 Hibernate 一起使用 我喜欢 Hiberante 的一件事是它的缓存功能 当您提交与特定对象匹
  • 调用 Web 浏览器上下文菜单

    我正在开发一个项目 一个 Web Bot 它使用 WebBrowser 控件 我的目标是以编程方式在加载的 Web 浏览器中的所需元素上打开 Web 浏览器上下文菜单 然后从上下文菜单中选择一个选项 Example 在 WebBrowser
  • 创建引用数组

    如果我有一个类 A 并且我将这个类的 10 个元素的数组声明为 A arr new A 10 然后A的10个新对象被创建并存储在数组中 但是 我希望能够做一些事情A arr 10 其中数组仅保存对空对象的引用 我需要这个的原因是因为我只需要
  • 快速算法实现对非常小的列表进行排序

    这是我很久以前遇到的问题 我想我可以问问你的想法 假设我有一个非常小的数字 整数 列表 4 或 8 个元素 需要快速排序 最好的方法 算法是什么 我的方法是使用最大 最小函数 10 个函数对 4 个数字进行排序 无分支 iirc s i j
  • 为什么使用 SetUnhandledExceptionFilter 时堆栈遍历无法正常工作?

    我使用以下代码在异常时遍历堆栈 note 您必须在发布版本中运行它 以便正确地将堆栈跟踪的所需输出接收到控制台 而不是在调试模式下运行 否则它只会显示弹出窗口 include stdafx h include
  • MPI - 工作/池示例

    有没有为 MPI 使用工作 池 或生产者 消费者 方案的示例 至于我所做的一切 我只得到一个正在通过的应用程序 然后我的应用程序陷入僵局 Thanks 只要在谷歌上搜索 MPI Master Worker 或 MPI Master Slav
  • AttributeError:QDialog对象没有属性setCentralWidget

    我正在尝试使用 QT Designer 创建 GUI 我已使用以下教程将 ui 设计器文件转换为 py 文件 http pyqt sourceforge net Docs PyQt5 designer html 我有以下代码 Created