PyQt5程序报错:AttributeError: ''CallMainWin_Assembly' object has no attribute 'setCentralWidget''的解决方法

背景说明

使用Qt Designer设计了一个界面,保存为Assembly_coldTest.ui,在eric6中导入并编译为Ui_Assembly_coldTest.py文件;另外编写了一个主调用程序:CallMainWin_Assembly.py,在主程序中,导入Assembly_coldTest.ui的类Ui_MainWindow,并创建了一个名为CallMainWin_Assembly的类,并继承QWidget,实例化Ui_MainWindow后,执行时报错:’‘CallMainWin_Assembly’ object has no attribute ‘setCentralWidget’’,解决方法:将主程序类CallMainWin_Assembly所继承的QWidget改为QMainWindow,错误解决。

界面文件代码


from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1120, 841)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.MainTitle = QtWidgets.QLabel(self.centralwidget)
        self.MainTitle.setGeometry(QtCore.QRect(330, 40, 521, 61))
        font = QtGui.QFont()
        font.setFamily("Agency FB")
        font.setPointSize(28)
        font.setBold(True)
        font.setWeight(75)

主程序代码

# -*- coding: utf-8 -*-

import sys 	
from PyQt5.QtWidgets import *
from Ui_Assembly_coldTest import *
from Ui_Add_Mal_Dialog import *

class CallMainWin_Assembly(QMainWindow):
	def __init__(self, parent=None):    
		super(CallMainWin_Assembly, self).__init__(parent)
		self.ui = Ui_MainWindow()
		self.ui.setupUi(self)

原因分析:在设计界面时,使用的是MainWindow,因此在主程序调用时,所继承的父类应该使用QMainWindow,而不是QWidget,同理,设计界面使用的是其他的类型时,主程序类也应该继承对应的父类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值