本文共 2349 字,大约阅读时间需要 7 分钟。
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Demo(QWidget): def __init__(self): super().__init__() self.setGeometry(500,300,300,300) label = QLabel(self) label.setToolTip('这是一个标签') #为标签添加背景图片 label.setStyleSheet('QLabel{border-image:url(python.jpg);}') #设置标签大小 label.setFixedWidth(128) label.setFixedHeight(128) btn = QPushButton(self) #为按钮添加背景图片 btn.setStyleSheet('QPushButton{background-image:url("python.jpg");}') #设置按钮大小 btn.setMaximumSize(128,128) btn.setMinimumSize(128,128) layout = QVBoxLayout(self) layout.addWidget(label) layout.addWidget(btn)if __name__ == "__main__": app = QApplication(sys.argv) form = Demo() form.show() sys.exit(app.exec_())
运行效果如下:
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Demo(QWidget): def __init__(self): super().__init__() self.setGeometry(500,300,300,300) self.setWindowTitle('缩放图片') img = QImage('python.jpg') label = QLabel(self) # 设置标签大小 label.setFixedWidth(128) label.setFixedHeight(128) #缩放图片,以固定大小显示 result = img.scaled(label.width(),label.height(),Qt.IgnoreAspectRatio,Qt.SmoothTransformation) #在标签上显示图片 label.setPixmap(QPixmap.fromImage(result))if __name__ == "__main__": app = QApplication(sys.argv) form = Demo() form.show() sys.exit(app.exec_())
运行效果如下:
win = QMainWindow()#0表示完全透明,1表示不透明,值越小,透明度越大win.setWindowOpacity(0.5)
通常定义一个QSS文件,然后编写各种控件的样式,最后使用QApplication或QMainWindow来加载样式,这样就可以让整个应用程序共享同一种样式。
编写QSS:
QMainWindow{ border-image:url(python.jpg);}
加载QSS:
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class CommonHelper: def __init__(self): pass @staticmethod def readQSS(style): with open(style,'r') as f: return f.read()if __name__ == "__main__": app = QApplication(sys.argv) form = QMainWindow() #换肤时进行全局修改,只需修改不同的QSS文件即可 style = CommonHelper.readQSS('style.qss') form.setStyleSheet(style) form.show() sys.exit(app.exec_())
运行效果如下:
转载地址:http://yxozi.baihongyu.com/