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基础实用漂亮界面(无边框,圆角,可拖拽)

  • 4
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿桂天山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值