1、复用性更好、可维护性好。
自定义类存放控件,继承QWidget()
from PyQt5.Qt import *
import sys
class Window(QWidget):
def __init__(self):
print('xxxx')
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
报错原因:创建控件会调用(子类)自定义类中的__init__(),但子类未调用父类的方法,父类中的方法都无法实现,故应该在子类的方法中调用父类的方法。
类部分进行改进:(self就是通过window类创建出来的)
class Window(QWidget):
def __init__(self):
# 调用父类的方法
super().__init__()
print('xxxx')
2、封装部分控件代码:
from PyQt5.Qt import *
import sys
class Window(QWidget):
def __init__(self):
# 调用父类的方法
super().__init__()
self.setWindowTitle("QLable学习")
self.resize(500, 500)
# 设置子控件
self.setup_ui()
def setup_ui(self):
# QLabel的父控件是self
label = QLabel(self)
label.setText("xxx")
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
3、还可以将class放入另一个新模块(.py文件),直接导入模块
new.py文件:
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
# 调用父类的方法
super().__init__()
self.setWindowTitle("QLable学习")
self.resize(500, 500)
# 设置子控件
self.setup_ui()
def setup_ui(self):
# QLabel的父控件是self
label = QLabel(self)
label.setText("xxx")
创建控件代码:
from new import Window
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
4、一开始就封装好类,在文件中直接进行类的功能测试。
if __name__ =="__main__":
import sys
app = QApplication(sys.argv)
# 实例化对象
window = Window()
window.show()
sys.exit(app.exec_())