Pyqt5常用技巧


翻译功能

多个饼图的制作

背景图片的调整

要了解控件有控件的颜色,背景色也有他的颜色,类似于ppt中的图层上移和下移。
所以要想做好一个统一的样式要配好颜色(最重要的),其次还要配置好控件的颜色比例,还有能不能把控件虚拟化(就是移入到背景色的下面)

设置整体背景色

1.使用QSS对mainwindow设置

win = QMainWindow()
win.setStyleSheet("#MainWindow{background-color: yellow}")

2.创建主题盒子,加入全局的背景色样式
本例是加入饼图的全局样式颜色。然后再根据盒子样式的颜色匹配对应的全局背景样式颜色

def createThemeBox(self): # 创建主题盒子
    themeComboBox = QComboBox()
    # 图标自带的颜色主题
    themeComboBox.addItem("Light", QChart.ChartThemeLight)
    themeComboBox.addItem("Blue Cerulean", QChart.ChartThemeBlueCerulean)
    themeComboBox.addItem("Dark", QChart.ChartThemeDark)
    themeComboBox.addItem("Brown Sand", QChart.ChartThemeBrownSand)
    themeComboBox.addItem("Blue NCS", QChart.ChartThemeBlueNcs)
    themeComboBox.addItem("High Contrast", QChart.ChartThemeHighContrast)
    themeComboBox.addItem("Blue Icy", QChart.ChartThemeBlueIcy)
    return themeComboBox

### 本例的self.windown() widget的自带的函数 猜的。但设定背景色使用setColor,调整背景色使用QPalette.Window
    pal = self.window().palette() # 设定全局背景颜色
    if theme == QChart.ChartThemeLight:
        pal.setColor(QPalette.Window, QColor(0xf0f0f0))
        pal.setColor(QPalette.WindowText, QColor(0x404044))
    elif theme == QChart.ChartThemeDark:
        pal.setColor(QPalette.Window, QColor(0x121218))
        pal.setColor(QPalette.WindowText, QColor(0xd6d6d6))
    elif theme == QChart.ChartThemeBlueCerulean:
        ## 设置背景颜色和标题颜色
        pal.setColor(QPalette.Window, QColor(0x40434a))
        pal.setColor(QPalette.WindowText, QColor(0xd6d6d6))
    elif theme == QChart.ChartThemeBrownSand:
        pal.setColor(QPalette.Window, QColor(0x9e8965))
        pal.setColor(QPalette.WindowText, QColor(0x404044))
self.window().setPalette(pal)

背景图片的透明化

必须把Pyqt5 中 QWidget控件中的放大,最小化,关闭,去除

self.setWindowFlags(Qt.FramelessWindowHint | Qt.Tool)

然后在进行窗口的背景透明化

self.setAttribute(Qt.WA_TranslucentBackground,True)

控件的透明化

目前按钮可以透明化

def changeOpacity(myshow): # myshow传入的控件名称
    op = QtWidgets.QGraphicsOpacityEffect()
    op.setOpacity(0.5)
    myshow.setGraphicsEffect(op)
    myshow.setAutoFillBackground(True)

按钮控件的修饰

表单控件的修饰

多线程的操作

页面显示的方法

多个界面进行切换

辅助间隙的调节控件间的大小

控件自身大小的改变

布局之间的间隙

信号与槽函数

contact

pyqtSignal