1、程序基本结构之面向对象版本
(1)开发阶段(自己写好并测试)——设置为模版qto
1 from PyQt5.Qt import * 2 3 class Window(QWidget): 4 def __init__(self): 5 super().__init__() 6 self.setWindowTitle("帅炸了") 7 self.resize(500, 500) 8 self.setup_ui() 9 10 def setup_ui(self): 11 label=QLabel(self) 12 label.setText('你好,明天') 13 14 if __name__ == '__main__': 15 import sys 16 17 app=QApplication(sys.argv) 18 19 window=Window() 20 window.show() 21 sys.exit(app.exec_())
(2)别人调用时:
1 import sys 2 from PyQt5.Qt import * 3 from menu import Window 4 5 app=QApplication(sys.argv) 6 7 window=Window() 8 9 window.show() 10 sys.exit(app.exec_())
2、控件学习
(1)概念
控件:一个程序界面上的各个独立元素——一块矩形区域;
具备不同的功能:用户点击、接收用户输入、展示内容、存放其他控件等等
常用控件:按钮、输入控件、展示控件、容器控件、结构控件、滚动控件、辅助控件和其他。如下图所示:
3、对象的名称和属性的设置
Object的总体框架学习如下:
对象的名称和属性学习框架:
(1)QObject.qss的设置
1 QLabel#notice{ 2 font-size:20px; 3 color:gray; 4 border:lpx solid gray; 5 border-radius:8px; 6 } 7 QLabel#notice[notice_level="normal"]{ 8 color:green; 9 border-color:green 10 } 11 QLabel#notice[notice_level="warning"]{ 12 color:yellow; 13 border-color:yellow 14 } 15 QLabel#notice[notice_level="error"]{ 16 color:red; 17 border-color:red 18 }
(2)对象的相关操作以及案例:

1 from PyQt5.Qt import * 2 3 class Window(QWidget): 4 def __init__(self): 5 super().__init__() 6 self.setWindowTitle("QObject的学习") 7 self.resize(500, 500) 8 self.setup_ui() 9 10 def setup_ui(self): 11 #self.QObject_ceshi() 12 self.QObject_dxsx() 13 14 def QObject_ceshi(self): 15 mros=QObject.mro() # 测试QObject含有继承哪些类 16 for mro in mros: 17 print(mro) 18 19 def QObject_dxsx(self): 20 # *********** 测试API**************开始 21 # obj=QObject() 22 # obj.setObjectName('notice') 23 # print(obj.objectName()) # notice 24 # 25 # obj.setProperty('notice_level','error') 26 # obj.setProperty('notice_level2','warning') 27 # 28 # print(obj.property('notice_level')) #error 29 # print(obj.dynamicPropertyNames()) # 两个,如下 30 # # [PyQt5.QtCore.QByteArray(b'notice_level'), PyQt5.QtCore.QByteArray(b'notice_level2')] 31 # *********** 测试API**************结束 32 33 # **************案例*****************开始 34 with open('QObject.qss',mode='r') as f: 35 qApp.setStyleSheet(f.read()) 36 37 label=QLabel(self) 38 label.setObjectName('notice') # 添加对象名,跟随颜色 39 label.setProperty('notice_level','warning') 40 label.setText('你好,明天') # 颜色改变 41 42 label2 = QLabel(self) 43 label2.setObjectName('notice') 44 label2.setProperty('notice_level', 'error') 45 label2.setText('人狠话不多') # 颜色改变 46 label2.move(100,100) 47 48 btn=QPushButton(self) 49 btn.setText('哈哈') # 颜色未改变 50 btn.move(50,40) 51 52 # 想要label3不跟随颜色,在QObject.qss做修改 53 label3=QLabel(self) 54 label3.setText('XXXXX') 55 label3.move(150,150) 56 # **************案例*****************结束 57 58 if __name__ == '__main__': 59 import sys 60 61 app=QApplication(sys.argv) 62 window=Window() 63 window.show() 64 sys.exit(app.exec_())
时间:2020-02-28 11:53:48
作者QQ:931935931