实例
- 创建基于Dialog without Buttons模板的窗口
- 拖出六个Label部件,六个Line Edit部件,一个Push Button部件
- 设定六个Label部件的text为Student Code, Student Name, History Marks, Geography Marks, Total, Percentage
- 设定六个Line Edit部件的objectName为lineEditCode, lineEditName, lineEditHistoryMarks, lineEditGeographyMarks, lineEditTotal, and lineEditPercentage.
- 设定Push Button的text为Click,objectName为ButtonClickMe
- 通过从“属性编辑器”窗口中取消选中“enabled”特性,禁用“lineEditTotal”和“lineEditPercentage”框
- 保存为demoMultipleInheritance.ui
- 使用pyuic创建demoMultipleInheritance.py
- 创建callMultipleInheritance.py,代码如下:
import sys
from PyQt5.QtWidgets import QDialog,QApplication
from cookbook_200427.demoMultipleInheritance import *
class Student:
name=""
code=""
def __init__(self,code,name):
self.code=code
self.name=name
def getCode(self):
return self.code
def getName(self):
return self.name
class Marks:
historyMarks=0
geographyMarks=0
def __init__(self,historyMarks,geographyMarks):
self.historyMarks=historyMarks
self.geographyMarks=geographyMarks
def getHistoryMarks(self):
return self.historyMarks
def getGeographyMarks(self):
return self.geographyMarks
class Result(Student,Marks):
totalMarks=0
percentage=0
def __init__(self,code,name,historyMarks,geographyMarks):
Student.__init__(self,code,name)
Marks.__init__(self,historyMarks,geographyMarks)
self.totalMarks=historyMarks+geographyMarks
self.percentage=(historyMarks+geographyMarks)/200*100
def getTotalMarks(self):
return self.totalMarks
def getPercentage(self):
return self.percentage
class MyForm(QDialog):
def __init__(self):
super().__init__()
self.ui=Ui_Dialog()
self.ui.setupUi(self)
self.ui.ButtonClickMe.clicked.connect(self.dispmessage)
self.show()
def dispmessage(self):
resultObj=Result(self.ui.lineEditCode.text(),self.ui.lineEditName.text(),int(self.ui.lineEditHistoryMarks.text()),int(self.ui.lineEditGeographyMarks.text()))
self.ui.lineEditTotal.setText(str(resultObj.getTotalMarks()))
self.ui.lineEditPercentage.setText(str(resultObj.getPercentage()))
if __name__=="__main__":
app=QApplication(sys.argv)
w=MyForm()
w.show()
sys.exit(app.exec())