#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_())
posted on 2020-09-09 18:12  94小渣渣  阅读(122)  评论(0编辑  收藏  举报