pyqt5界面开发-制作程序集合桌面-基本的框架_用pyqt做程序集合的界面-程序员宅基地

技术标签: python  pyqt5  

pyqt5界面开发-制作程序集合桌面-基本的框架

最近无事,看到了电脑桌面,又想到了最近入门的pyqt5,再看看以往的程序,想到了可不可以做一个集合了多个程序的的UI桌面

先导入pyqt5库

from PyQt5 import QtCore, QtWidgets ,QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import QProgressBar, QLabel, QApplication, QMainWindow,QToolTip
from PyQt5.QtCore import QBasicTimer, QThread, pyqtSignal
from PyQt5.QtWidgets import *

然后生成一个类并继承

class UI(QMainWindow,QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

初始化UI

    def init(self):
        QToolTip.setFont(QFont('SansSerif', 10))

        self.resize(1000, 625) #大小
        self.move(300, 300) #窗口初始位置

        self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint) #设置禁用放大缩小和退出按钮
        self.setFixedSize(self.width(), self.height()) #禁止拉伸

        self.setWindowTitle('TArk-Tools') #取名
        self.setWindowIcon(QIcon('./resource/img/eye.webp')) #设置窗口的图标
        self.setIcon("./resource/img/bg1.jpg") #这里是调用了一个函数,用于换UI背景,稍后创建

        self.win_offQL = QLabel(self) #颜色文本框
        self.win_offQL.setGeometry(QtCore.QRect(970, 10, 21, 21))
        self.win_offQL.setStyleSheet("border-radius:10px;\n""background-color: rgb(170, 0, 0);")
        self.win_offQL.setText("")
        self.win_off = QPushButton(self) #退出按钮
        self.win_off.setGeometry(QtCore.QRect(970, 10, 21, 21))
        self.win_off.setCursor(QCursor(QtCore.Qt.PointingHandCursor))
        self.win_off.setStyleSheet("QPushButton{background:#ff5500;border-radius:10px;}QPushButton:hover{background:red;}")
        self.win_off.setText("")
        self.win_off.clicked.connect(sys.exit)

补上代码里的换背景函数,setIcon这名字…emmmm

	def setIcon(self):
		self.palette = QPalette()
    	self.palette.setBrush(QPalette.Background, QBrush(QPixmap(path)))
    	self.setPalette(self.palette)

换背景在后面很多跳转的地方都要用,所以设置了一个函数

我还想在开始时设一个进度条,这里用到了QTimer代替time

	def main():
		self.interface()
		
    def interface(self):
        self.pbar = QProgressBar(self) #用QProgressBar()设置进度条
        self.pbar.setGeometry(300,400,450,25) #进度条基本信息:(x轴,y轴,长,宽)

        self.button = QPushButton('Start', self)
        self.button.move(450, 450)

        self.button.clicked.connect(self.onStart) #挂到onStart函数
        self.timer = QBasicTimer() #初始化QTimer
        self.step = 0



    def timerEvent(self, event):
        if self.step >= 100:
            self.timer.stop() #停止QTimer
            self.mainApp() #跳转到程序桌面UI,在后期创建
            return 0


        self.step = self.step + 1
        self.pbar.setValue(self.step)


    def onStart(self):
        if self.timer.isActive():
            self.timer.stop()
            self.button.setText('Start')
        else:
            self.timer.start(10, self)
            self.button.setText('Stop')

贴上mainApp的UI代码

	self.win_off.show()
    self.win_offQL.show()

    self.setFixedSize(1000, 625) #重新定义窗口拉伸的长度,宽度

    y1 = 100

    self.hide1() #隐藏函数
    self.setIcon("./resource/img/bg2.jpg")

隐藏函数1

    def hide1(self):
        self.button.hide()
        self.pbar.hide()

最后主函数入口

if __name__ == '__main__':
	def run():
    	app = QApplication(sys.argv)
    	GUI = UI()
    	GUI.show()
    	sys.exit(app.exec_())
    	
	run()

好了,今天的基本框架就这样了,明天将贴出运行图
喜欢此文章请点一个点赞收藏加关注,爱你么么哒(づ ̄3 ̄)づ╭~

今天代码又修改了一下

贴上全部代码

from PyQt5 import QtCore, QtWidgets ,QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import QProgressBar, QLabel, QApplication, QMainWindow,QToolTip
from PyQt5.QtCore import QBasicTimer, QThread, pyqtSignal
import sys
from PyQt5.QtWidgets import *

class UI(QMainWindow,QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.init()
        self.main()

    def init(self):
        QToolTip.setFont(QFont('SansSerif', 10))

        self.resize(1000, 625)  # 大小
        self.move(300, 300)  # 窗口初始位置

        self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)  # 设置禁用放大缩小和退出按钮
        self.setFixedSize(self.width(), self.height())  # 禁止拉伸

        self.setWindowTitle('TArk-Tools')  # 取名
        self.setWindowIcon(QIcon('./resource/img/eye.webp'))  # 设置窗口的图标
        self.setIcon("./resource/img/bg1.jpg")  # 这里是调用了一个函数,用于换UI背景,稍后创建

        self.win_offQL = QLabel(self)  # 颜色文本框
        self.win_offQL.setGeometry(QtCore.QRect(970, 10, 21, 21))
        self.win_offQL.setStyleSheet("border-radius:10px;\n""background-color: rgb(170, 0, 0);")
        self.win_offQL.setText("")
        self.win_off = QPushButton(self)  # 退出按钮
        self.win_off.setGeometry(QtCore.QRect(970, 10, 21, 21))
        self.win_off.setCursor(QCursor(QtCore.Qt.PointingHandCursor))
        self.win_off.setStyleSheet(
            "QPushButton{background:#ff5500;border-radius:10px;}QPushButton:hover{background:red;}")
        self.win_off.setText("")
        self.win_off.clicked.connect(sys.exit)

    def main(self):
        self.interface()

    def interface(self):
        self.pbar = QProgressBar(self)  # 用QProgressBar()设置进度条
        self.pbar.setGeometry(300, 400, 450, 25)  # 进度条基本信息:(x轴,y轴,长,宽)

        self.button = QPushButton('Start', self)
        self.button.move(450, 450)

        self.button.clicked.connect(self.onStart)  # 挂到onStart函数
        self.timer = QBasicTimer()  # 初始化QTimer
        self.step = 0

    def timerEvent(self, event):
        if self.step >= 100:
            self.timer.stop()  # 停止QTimer
            self.mainApp()  # 跳转到程序桌面UI,在后期创建
            return

        self.step = self.step + 1
        self.pbar.setValue(self.step)

    def onStart(self):
        if self.timer.isActive():
            self.timer.stop()
            self.button.setText('Start')
        else:
            self.timer.start(10, self)
            self.button.setText('Stop')

    def setIcon(self,path):
        self.palette = QPalette()
        self.palette.setBrush(QPalette.Background, QBrush(QPixmap(path)))
        self.setPalette(self.palette)


    def mainApp(self):
        self.win_off.show()
        self.win_offQL.show()

        self.setFixedSize(1000, 625)  # 重新定义窗口拉伸的长度,宽度

        y1 = 100

        self.hide1()  # 隐藏函数
        self.setIcon("./resource/img/bg2.jpg")

    def hide1(self):
        self.button.hide()
        self.pbar.hide()


if __name__ == '__main__':
    def run():
        app = QApplication(sys.argv)
        GUI = UI()
        GUI.show()
        sys.exit(app.exec_())

    run()

程序运行图片
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_54027333/article/details/120006715

智能推荐

Android 应用程序组件_android清单文件包含了组成应用程序模块所需要的组件-程序员宅基地

文章浏览阅读168次。应用程序组件是一个Android应用程序的基本构建块。这些组件由应用清单文件松耦合的组织。AndroidManifest.xml描述了应用程序的每个组件,以及他们如何交互。以下是可以在Android应用程序中使用的四个主要组件。组件 描述 Activities 描述UI,并且处理用户与机器屏幕的交互。 Services 处理与应用程序关联的后台操作。 Broadcast Receivers 处理Android操作系统和应用程序之间的通信。 Content Prov_android清单文件包含了组成应用程序模块所需要的组件

22.8.29 C语言作业5道_a.c: in function ‘main’:-程序员宅基地

文章浏览阅读387次。1.字符转换输出递归按位输出_a.c: in function ‘main’:

【pygame游戏】用Python实现一个蔡徐坤大战篮球的小游戏,可还行?【附源码】_python蔡徐坤代码复制-程序员宅基地

文章浏览阅读6.9w次,点赞137次,收藏246次。表弟大周末的跑来我家,没事干天天骚扰我,搞得我都不能跟小姐姐好好聊天了,于是为了打发表弟,我决定用Python做一个小游戏来消耗一下他的精力..._python蔡徐坤代码复制

系统分析、设计_信息系统开发中分析与设计的重要性。-程序员宅基地

文章浏览阅读1.9k次。blueski推荐 [2007-1-31]出处:Java夜无眠作者:蔡学镛 1、系统分析是什么?   系统分析工作是解决一个问题的工作,目标是将一个对计算机应用系统的需求转化成实际的物理实现,其中复杂就复杂在实际的面太多.在系统分析过程之中注意问以下的问题,可能会所进行的系统分析设计工作有帮助。    1)您所完成的系统目的是什么?注意不是功能要求,而是目的.也就是为什么要建设、为什么要现_信息系统开发中分析与设计的重要性。

nginx 学习+案例练习_nginx 使用pipe:rollback-程序员宅基地

文章浏览阅读659次。nginx软件学习nginx是个web服务器,常用作静态文件服务器,反向代理服务器,邮件代理服务器,负载均衡服务器1.安装淘宝nginx,编代码编译安装,先解决模块依赖 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel..._nginx 使用pipe:rollback

python_one893.app-程序员宅基地

文章浏览阅读6.7k次。pycharm安装库包失败:比如安装matplotlib失败下载库文件:https://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib根据python版本等来选择适合的文件,比如python3.8选择cp38,python3.10选择cp310,这里我选择的是matplotlib‑3.4.3‑cp310‑cp310‑win_amd64.whl将下载好的文件放入python安装包的Scripts中,运行cmd命令行,执行pip install .\_one893.app

随便推点

回溯算法(leetcode 306 python)-程序员宅基地

文章浏览阅读295次。回溯算法:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较大的问题都可以使用回..._leetcode 306、python

redis的使用总结_redis.redis(host='127.0.0.1', port=6379)-程序员宅基地

文章浏览阅读352次。数据库redis使用优点使用方法redis的简单类型String字符串注意一个键最大能存储512MB哈希list列表set集合注意redis安全可以通过以下命令查看是否设置了密码验证用python实现链接数据库redis-connectredis密码破解redis使用设置数据添加数据redis查看服务器配置插入值追加数据setget数据导出dumprdb 这个即为_redis.redis(host='127.0.0.1', port=6379)

华为ICT解决方案助力全球190多家电力公司数字化转型-程序员宅基地

文章浏览阅读1k次。华为以“比特驱动瓦特,共建全联接智能电网”为主题,举办第七届华为全球电力峰会(线上),邀请来自全球各地的客户、伙伴、行业精英和思想领袖共同探讨。面对2020年的全球疫情、政治、经济等不确..._ict数字化解决方案资金分配

将图片资源文件整合到DLL文件中 _易语言dll加入资源-程序员宅基地

文章浏览阅读733次。 1、新建一个类库,例如库名为 ResourcesLibrary;2、添加引用 System.Drawing;3、添加资源文件(添加--新建项--资源文件),例如文件名为 Resource1.resx;4、添加图片(打开Resource1.resx,单击“添加资源”后的小三角,选择添加现有文件,选择需要作为资源的图片),例如添加了图片 Sunset.jpg5、添加类,例如名为 GetImage_易语言dll加入资源

MySQL 时间函数(答学生问:关于员工考勤查询)_%h:%i-程序员宅基地

文章浏览阅读4.4k次,点赞4次,收藏15次。今天有学生问个关于MySQL时间操作的问题,直接看图: 查询某日人员的出勤时间问题。我们都知道,企业员工考勤使用打卡方式,每天会记录每个员工的多次打卡记录,最后取每个员工的每天:上班时间:当日最早时间;下班时间:当日最晚时间。所以分析查询每个员工每日考勤记录,需要根据员工分组,当天时间、时间最小和最大,时间格式化等操作,下面举例模拟该问题:学生表student ..._%h:%i

Python实战——1_1.网页制作_"<nav> <ul class=\"summary\"> <!-- 一级目录 --> {% for-程序员宅基地

文章浏览阅读1.3w次,点赞4次,收藏31次。Python实战——1_1.网页制作引言网页的组成部分:CSS样式 - 给结构以装饰Html - 结构部分JavaScript- 功能实现代码部分第一部分为网站的基本结构(在IDE中新建网页后既给出) {% for docs in toc_list %} "

推荐文章

热门文章

相关标签