下面介绍创建多个用于信息提示的QLabel的要求、涉及知识点、辅助资料、掌握的级别。
资源:Python-GUI-PyQ5总概述.xmind;QObject.xmind
一、要求
(1)凡是提示的QLabel控件,都要求设置:字体大小为25px、字体颜色为灰色、边宽圆角为8px。
(2)信息提示是分多个级别的
正常(nomal):绿色边框、绿色字体。
警告(warning):黄色边框、黄色字体。
错误(error):红色边框、红色字体。
二.涉及知识点
(1)qss样式表
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QObject的学习") # 窗口标题
self.resize(500, 500) # 设置窗口大小
self.setup_ui()
def setup_ui(self):
self.QObject对象名称和属性的操作()
def QObject对象名称和属性的操作(self):
label=QLabel(self)
label.setText("社会我玲姐")
label.setStyleSheet("font-size:20px;color:red;") #其中是qss字符串
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
上述代码实现也可这般实现:重建QObject.qss,里面填写如下代码:
QLabel{
ont-size:20px;
color:red;
}
将前面代码改成如下形式
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QObject的学习") # 窗口标题
self.resize(500, 500) # 设置窗口大小
self.setup_ui()
def setup_ui(self):
self.QObject对象名称和属性的操作()
def QObject对象名称和属性的操作(self):
with open('QObject.qss','r') as f:
qApp.setStyleSheet(f.read())
label=QLabel(self)
label.setText("社会我玲姐")
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
亦或是改成以下情形适用各种情形的代码
QLabel#notice{
ont-size:20px;
color:red;
}
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QObject的学习") # 窗口标题
self.resize(500, 500) # 设置窗口大小
self.setup_ui()
def setup_ui(self):
self.QObject对象名称和属性的操作()
def QObject对象名称和属性的操作(self):
with open('QObject.qss','r') as f:
qApp.setStyleSheet(f.read())
label=QLabel(self)
label.setObjectName("notice")
label.setText("社会我玲姐")
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
(2)文件读取
(3)对象\属性名称设置
①在QObject.qss里面书写以下代码
QLabel#notice{
font-size:20px;
color:gray;
border:1px solid gray;
border-radius:8px;
}
QLabel#notice[notice_level="normal"]{
color:green;
border-color:green;
}
QLabel#notice[notice_level="warning"]{
color:yellow;
border-color:yellow;
}
QLabel#notice[notice_level="error"]{
color:red;
border-color:red;
}
②(1)中代码改成以下
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QObject的学习") # 窗口标题
self.resize(500, 500) # 设置窗口大小
self.setup_ui()
def setup_ui(self):
self.QObject对象名称和属性的操作()
def QObject对象名称和属性的操作(self):
with open('QObject.qss','r') as f:
qApp.setStyleSheet(f.read())
label=QLabel(self)
label.setObjectName("notice")
label.setProperty("notice_level","warning")
label.setText("社会我玲姐")
label2=QLabel(self)
label2.move(100,100)
label2.setObjectName("notice")
label2.setProperty("notice_level", "error")
label2.setText("人狠话不多")
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
三、QObject.qss