网络知识 娱乐 python小技巧大应用--基础实用漂亮界面(无边框,圆角,可拖拽)

python小技巧大应用--基础实用漂亮界面(无边框,圆角,可拖拽)

这回要实现一个漂亮的基础界面,要具有如下特色:

无边框,圆角,漂亮的背景,可拖拽移动,具有最小化,关闭按钮,界面与代码分离,支持qss

先展示一下最后的效果:

那就开始工作吧:

1.通过Qt Designer实现界面设计

 将设计好的界面保存为dialog.ui文件

将资源文件保存为image.qrc

图片文件有bg.jpg,images/min.png,images/quit.png 这些资源文件都可以在我的资源文件(

​​​​​​Qt小实练--实现圆角、阴影、无边框窗体,可拖拽缩放大小)下载到,如果需要学习Qt界面开发的可参考我的博文:

Qt小实练--实现圆角、阴影、无边框窗体,可拖拽缩放大小

2.在Pycharm新建项目test-baseUi,将上述文件复制到项目中

目录结构如图:

3.通过工具PyUIC,PyRcc分别对dialog.ui,image.qrc进行转化,生成dialog.py和image_rc.py文件(关于如何在pycharm上安装这几个工具的文章网上有很多,在此就不说了)

 4.现在界面有了,要实现界面与代码分离,建立main.py文件打开ui界面

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
' a Main using Ui file'

__author__ = 'TianJiang Gui'

import sys
from PyQt5.QtWidgets import QApplication,QDialog,QFileDialog
import dialog
from PyQt5.QtCore import *

class MainDo(QDialog, dialog.Ui_Dialog):
    def __init__(self):
        QDialog.__init__(self)
        dialog.Ui_Dialog.__init__(self)
        self.setupUi(self)

       
if __name__ == '__main__':
    app = QApplication(sys.argv)
    md = MainDo()
    md.show()
    sys.exit(app.exec_())

5.实现圆角,无边框样式,最小化,关闭窗口功能

        # 无边框
        self.setWindowFlags(Qt.FramelessWindowHint)

        #---gtj 设置窗口透明
        self.setAttribute(Qt.WA_TranslucentBackground)

        
        #---gtj实现最小化,关闭功能
        self.pushButton_min.clicked.connect(self.showMinimized)
        self.pushButton_quit.clicked.connect(self.close)  

6.实现鼠标拖拽功能 

    #---gtj 实现鼠标拖拽功能
    def mousePressEvent(self, event):
        self.pressX = event.x()    #记录鼠标按下的时候的坐标
        self.pressY = event.y()

    def mouseMoveEvent(self, event):
        x = event.x()
        y = event.y()   #获取移动后的坐标
        moveX = x-self.pressX
        moveY = y-self.pressY  #计算移动了多少

        positionX = self.frameGeometry().x() + moveX
        positionY = self.frameGeometry().y() + moveY    #计算移动后主窗口在桌面的位置
        self.move(positionX, positionY)    #移动主窗口

7.实现qss文件引用

        1)首先在初始化时增加self.qss()

        2)增加一个调用qss文件的工具类UsingQSS

        

        3)主应用程序中增加qss()函数

#---gtj qss文件引用
    def qss(self):
        self.qssfile = "./qss/dialog.qss"
        self.style = UsingQSS.loadqss(self.qssfile)
        self.setStyleSheet(self.style)

 至此全部功能实现完毕!

最终项目工程文件结构如下:

 

如果你想直接获得现成的工程项目,那就付5颗咖啡豆打赏一下吧:)

Python基础实用漂亮界面(无边框,圆角,可拖拽)