提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在PyQt5学习(一)基础上,封装一个MyWindow类
#2.py
'''
使用类对行为进行封装,具有条理性
行为:
创建对象时:初始化建立窗口
初始化UI界面
按钮链接的事件&&执行
'''
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication,QMainWindow
import sys
class Mywindow(QMainWindow):
def __init__(self):
super(Mywindow,self).__init__()
self.setGeometry(150,100,1600,900)
self.setWindowTitle("The system of vehicle dectectng and tracking based on UVA")
self.initUI()
def initUI(self):
self.label = QtWidgets.QLabel(self)
self.label.setText("本车辆目标检测与跟踪系统非常先进")
self.label.move(50, 50)
self.b1 = QtWidgets.QPushButton(self) #创建一个button
self.b1.setText("Click me") #button上的字
self.b1.clicked.connect(self.clicked) #按下button触发事件
def clicked(self):
self.label.setText("本车辆目标检测与跟踪系统非常先进")
self.update()
def window():
app = QApplication(sys.argv)
win = Mywindow()
win.show()
sys.exit(app.exec_())
window()
一、初始化部分
1.self参数
self指的是实例Instance本身,在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self,也就是说,类中的方法的第一个参数一定要是self,而且不能省略。
2.__init__()方法
在python中创建类后,通常会创建一个 __ init__ ()方法,这个方法会在创建类的实例的时候自动执行。__ init__ ()方法必须包含一个self参数,而且要是第一个参数。我们在实例化对象的时候, __ init__ ()方法就已经自动执行了。
3.super(Mywindow, self).__init__()
Python中的super(Mywindow, self).__init__()是指首先找到Mywindow的父类(QMainWindow),然后把类Mywindow的对象self转换为类QMainWindowt的对象,然后“被转换”的类QMainWindow对象调用自己的init函数.
其实简单理解就是子类把父类的__init__()放到自己的__init__()当中,这样子类就有了父类的__init__()的那些东西。
super(Mywindow self).__init__()就是对继承自父类QMainWindow的属性进行初始化。而且是用QMainWindow的初始化方法来初始化继承的属性。
class Mywindow(QMainWindow):
def __init__(self):
super(Mywindow,self).__init__()
self.setGeometry(150,100,1600,900)
self.setWindowTitle("The system of vehicle dectectng and tracking based on UVA")
self.initUI()
二、组件Widgets
1.标签label
2.按钮button&&事件events
总结
简单窗口