#QSS 样式 用于设置控件样式 【设置控件样式比较方便,不用找控件自带属性和方法了】
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import math,sys
class QssDemo(QWidget):
def __init__(self):
super().__init__()
self.resize(300,200)
self.setWindowTitle('QSS demo')
layout = QVBoxLayout(self)
self.btn1 = QPushButton('button1')
self.btn2 = QPushButton('button2')
self.btn3 = QPushButton('button3')
layout.addWidget(self.btn1)
layout.addWidget(self.btn2)
layout.addWidget(self.btn3)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QssDemo()
#在这里设置窗口控件的样式,按照控件类(比如QPushButton)设置,关键是 我怎么知道他都有什么属性可以设置 ,这是个选择器
qssStyle = '''
QPushButton{
background-color:red
}
'''
main.setStyleSheet(qssStyle) #设置到主窗口 main上 (setStyleSheet)
main.show()
sys.exit(app.exec_())
#QSS 控件选择器
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import math,sys
class QssDemo(QWidget):
def __init__(self):
super().__init__()
self.resize(300,200)
self.setWindowTitle('QSS 选择器')
layout = QVBoxLayout(self)
self.btn1 = QPushButton('button1')
self.btn1.setProperty('name','btn1') #增加了一个属性,方便单独设置样式
self.btn2 = QPushButton('button2')
self.btn2.setProperty('name', 'btn2')
self.btn3 = QPushButton('button3')
layout.addWidget(self.btn1)
layout.addWidget(self.btn2)
layout.addWidget(self.btn3)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QssDemo()
#在这里设置窗口控件的样式,按照控件类(比如QPushButton)设置,关键是 我怎么知道他都有什么属性可以设置 ,这是个选择器
qssStyle = '''
QPushButton[name='btn1']{
background-color:red;
color:yellow;
height:50;
font-size:18px;
}
QPushButton[name='btn2']{
background-color:lime;
color:green;
height:40;
font-size:14px;
}
'''
main.setStyleSheet(qssStyle) #设置到主窗口 main上 (setStyleSheet)
main.show()
sys.exit(app.exec_())
# QSS 子控件选择器
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import math, sys
class QssSubControlDemo(QWidget):
def __init__(self):
super().__init__()
self.resize(300, 200)
self.setWindowTitle('QSS 选择器')
layout = QVBoxLayout(self)
self.comboBox = QComboBox()
self.comboBox.setObjectName('comboBox')
self.comboBox.addItems(['Window','Linux','MacOS'])
layout.addWidget(self.comboBox)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QssSubControlDemo()
# 在这里设置窗口控件的样式,按照控件类(比如QPushButton)设置,关键是 我怎么知道他都有什么属性可以设置 ,这是个选择器
qssStyle = '''
QComboBox#comboBox::drop-down{
image:url(./images/download.png)
}
'''
main.setStyleSheet(qssStyle) # 设置到主窗口 main上 (setStyleSheet)
main.show()
sys.exit(app.exec_())
#设置窗口样式 (窗口边框 ,标题栏,等本身)
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class WindowPattern(QMainWindow):
def __init__(self):
super().__init__()
self.resize(200,100)
self.setWindowTitle('设置窗口样式')
self.setWindowFlags(Qt.WindowMaximizeButtonHint | Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint )
self.setObjectName('mainWindow') #关键是设置对象名 setObjectName
self.setStyleSheet('#mainWindow{border-image:url(./images/python.jpg);}') #再设置样式setStyleSheet
if __name__ == '__main__':
app = QApplication(sys.argv)
main = WindowPattern()
main.show()
sys.exit(app.exec_())
#设置窗口样式 代码实现窗口最大化 最小化
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class WindowPattern(QWidget): #里面用到 layout 布局 就要继承QWidget类了
def __init__(self):
super().__init__()
self.resize(300,100)
self.setWindowTitle('设置窗口样式')
self.setWindowFlags(Qt.WindowMaximizeButtonHint | Qt.WindowStaysOnTopHint |Qt.WindowMinimizeButtonHint |Qt.WindowCloseButtonHint )
layout = QVBoxLayout(self)
self.btn1 = QPushButton('maximize')
self.btn1.clicked.connect(self.maximized) #方法一 绑定槽函数
self.btn2 = QPushButton('minimize')
self.btn2.clicked.connect(self.showMinimized) #方法二,像是定义好的最小化槽函数
self.btn3 = QPushButton('close')
self.btn3.clicked.connect(self.close)
layout.addWidget(self.btn1)
layout.addWidget(self.btn2)
layout.addWidget(self.btn3)
self.setLayout(layout)
def maximized(self):
desktop = QApplication.desktop() #获取桌面可用尺寸 好像太最大化了,右上角最小化 最大化 关闭按钮都看不到了
rect = desktop.availableGeometry()
self.setGeometry(rect)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = WindowPattern()
main.show()
sys.exit(app.exec_())
#实现不规则窗口(异形窗口) mask
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class AbnormityWindow(QWidget): #里面用到 layout 布局 就要继承QWidget类了
def __init__(self):
super().__init__()
self.setWindowTitle('异形窗口')
# self.setWindowFlag(Qt.FramelessWindowHint)
self.pix = QBitmap('./images/python.jpg')
self.resize(self.pix.size())
self.setMask(self.pix.mask())
def paintEvent(self, event):
painter = QPainter(self)
painter.drawPixmap(0,0,self.pix.width(),self.pix.height(),QPixmap('./images/python-abnormity.png'))
if __name__ == '__main__':
app = QApplication(sys.argv)
main = AbnormityWindow()
main.show()
sys.exit(app.exec_())