从事嵌入式系统软硬件设计工作已有将尽20年的时间,在进行硬件目标板调试时,常需要上位机软件支持。在进行上位机软件程序的设计时,采用过VB、VB.net和C++等多种语言,偶然的机会发现Python,接触后,立刻感觉到它的强大,现在我的上位机软件编程只用Python。本系列教程将从基于硬件的上位机软件设计的角度着手,系统介绍Python语言,希望读者通过本系列教程的学习,能够对Python语言立刻学以致用,真正将所学知识应用到项目实践中。
开发环境:Visual Studio Code
操作系统:Microsoft Window 7
Python版本:3.7
参考教材:Python快速编程入门,黑马程序员,人民邮电出版社,2017年9月第1版
一、有关类的多继承的例子
1、PyQt设计界面:
2、对象命名:
3、源程序
# 系统包
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
# 项目包
from Ui_MainWindow import Ui_MainWindow
class people:
name = ""
age = 0
sex = "男"
def OutputName(self):
strOutput = "我叫" + self.name
return strOutput
def OutputAge(self):
strOutput = "今年已经" + self.age + "岁了"
return strOutput
def OutputSex(self):
if self.sex == "男":
strOutput = "我是一个阳光帅气的男孩,我生命的每一天都充满活力"
else:
strOutput = "我是一个温柔漂亮的女孩,我珍惜我生命中的每一分、每一秒"
return strOutput
def OutputResume(self):
strOutput = " " + self.OutputName() + ","
strOutput = strOutput + self.OutputAge() + ","
strOutput = strOutput + self.OutputSex() + "。"
return strOutput
class Lesson:
Lesson1 = ""
Lesson2 = ""
Lesson3 = ""
Lesson4 = ""
Lesson5 = ""
Lesson6 = ""
def OutputLesson(self):
strOutput = " 我的学习刻苦努力,已经修完了"
strOutput = strOutput + self.Lesson1 + "、"
strOutput = strOutput + self.Lesson2 + "、"
strOutput = strOutput + self.Lesson3 + "、"
strOutput = strOutput + self.Lesson4 + "、"
strOutput = strOutput + self.Lesson5 + "、"
strOutput = strOutput + self.Lesson6 + "等课程,学习成绩优异"
return strOutput
class student(people, Lesson):
school = ""
department = ""
def OutputSchool(self):
strOutput = "通过我高中3年的不懈努力,考入了全球最出色的高等院校——" + self.school
return strOutput
def OutputDepartment(self):
strOutput = "我在该校最有发展前景的" + self.department + "就读"
return strOutput
def OutputResume(self):
strOutput = " " + self.OutputName() + ","
strOutput = strOutput + self.OutputAge() + ","
strOutput = strOutput + self.OutputSex() + ","
strOutput = strOutput + self.OutputSchool() + ","
strOutput = strOutput + self.OutputDepartment() + "。"
strOutput = strOutput + "\r\n" + self.OutputLesson() + "。"
return strOutput
class CMainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent = None):
super(CMainWindow, self).__init__(parent)
self.setupUi(self)
# 主窗体设置
self.show()
def Generate(self):
p = student()
p.name = self.txtName.text()
p.age = self.txtAge.text()
p.sex = self.txtSex.text()
p.school = self.txtSchool.text()
p.department = self.txtDepartment.text()
p.Lesson1 = self.txtLesson1.text()
p.Lesson2 = self.txtLesson2.text()
p.Lesson3 = self.txtLesson3.text()
p.Lesson4 = self.txtLesson4.text()
p.Lesson5 = self.txtLesson5.text()
p.Lesson6 = self.txtLesson6.text()
self.txtResume.setText(p.OutputResume())
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = CMainWindow()
sys.exit(app.exec_())
二、注解
1、定义
class DerivedClassName(Base1, Base2, Base3):
<statement-1>
.
.
.
<statement-N>
2、允许“一子多父”,父类与子类方法可以同名,如不加限制,调用子类方法。
3、高内聚,低耦合