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

智能推荐

只要三步!阿里云DLA帮你处理海量JSON数据-程序员宅基地

文章浏览阅读123次。概述 您可能有大量应用程序产生的JSON数据,您可能需要对这些JSON数据进行整理,去除不想要的字段,或者只保留想要的字段,或者仅仅是进行数据查询。 那么,利用阿里云Data Lake Analytics或许是目前能找到的云上最为便捷的达到这一目标的服务了。仅仅需要3步,就可以完成对海量..._什么云服务可以直接存储json数据

react常见面试题_react diff 面试题-程序员宅基地

文章浏览阅读413次。diff 算法 虚拟dom 理论_react diff 面试题

【机器学习】Meta-Learning(元学习)_meta learning-程序员宅基地

文章浏览阅读1.2w次,点赞23次,收藏104次。文章目录前言从传统学习引出元学习对比机器学习和元学习如何实现元学习参考链接前言元学习Meta Learning,含义为学会学习,即learn to learn,带着对人类的“学习能力”的期望诞生的。Meta Learning希望使得模型获取一种 “学会学习” 的能力,使其可以在获取已有“知识”的基础上快速学习新的任务。从传统学习引出元学习传统的机器学习方法是针对一个特定的,一般是有大量数据的数据集 ,试图学习出一个预测模型 ,使得模型对于测试集上的数据的预测有最小的误差。这个思路在数据集 D_meta learning

5.25Python基础语法2_type({100})-程序员宅基地

文章浏览阅读362次。一、类型相关操作1.type函数理解:type(数据)获取指定数据类型例如:type(100) #直接输入是不会打印,需要printprint(type(100)) #整型(int) #得出结果:100print(type(1.25)) #浮点型(float) #得出结果:1.25print(type('陈某某')) #字符串(str) #得出结果:陈某某print(type(10>20)) #布尔(bool) _type({100})

Unable to open debugger port错误,明明CMD查询端口没有被占用,但是idea一直提示端口占用_unable to open debugger port 12208-程序员宅基地

文章浏览阅读798次。在运行idea时常常提示端口被占用,在cmd查询该端口,但显示端口没有被占用怎么办?_unable to open debugger port 12208

爱上开源之一款查询docker容器启动命令的工具_docker joinsunsoft-程序员宅基地

文章浏览阅读312次。docker不容置疑,目前最为成熟最广泛的虚拟容器产品,虽然k8s在docker编排基础上,基于战略原因,协同google,ibm推出了CRI标准,兼容一切符合CRI标准的容器厂商,而带动了podman等其他容器产品的百花齐放,但是docker依然在诸多的容器产品里鹤立鸡群,强就是强,无惧大厂商的霸权,今天这里谈谈docker使用里查看容器启动命令的一个工具。runcommandruncommand是一款使用golang实现的基于容器管理的工具,市面上也有一些同类产品的实现,比如笔者我,在没有开发runco_docker joinsunsoft

随便推点

Qt开发笔记:QGLWidget、QOpenGLWidget详解及区别_qt 用qopenglwidget生成release版,依赖什么库-程序员宅基地

文章浏览阅读7.9w次,点赞53次,收藏235次。若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936本文章博客地址:https://blog.csdn.net/qq21497936/article/details/94585803目录前话相关博客QGLWidget概述QGLWidget子类示例更新绘制覆盖层绘制技术线程方案一:在线程中进..._qt 用qopenglwidget生成release版,依赖什么库

C 语言的浮点数类型_c语言float和double保留小数点后几位-程序员宅基地

文章浏览阅读5.3k次。C 语言的浮点数类型_c语言float和double保留小数点后几位

gradle打包报错Using insecure protocols with repositories..._gradle using insecure protocols with repositories,-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏2次。gradle 打包时报以下错误:二、解决方法在 build.gradle 文件中找到 http://mirrors.huaweicloud.com/repository/maven/ 所在的位置,增加 allowInsecureProtocol = true 一行:_gradle using insecure protocols with repositories, without explicit opt-in,

java程序员微信群,欢迎准java行业人员加入,会一直更新_java开发接单群-程序员宅基地

文章浏览阅读7.3k次。微信群,请扫描二维码加入 本人在北京,主场北京,位置不限, 仅限java行业交流,C C##以及python请另外加群,谢谢欢迎准 java行业的进入,杜绝假冒程序员加入,精兵简政群内与java无关私事请私聊,任何java的问题,欢迎讨论——————————————————————————————————如若二维码失效,请加微信拉群..._java开发接单群

【数据库】数据、数据库、数据库管理系统、数据库系统_系统的数据管理逻辑-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏43次。一、数据库系统概述数据库的四个基本概念:数据、数据库、数据库管理系统、数据库系统:1、数据:描述事物的符号记录称为数据。 (1)、数据是数据库中存储的基本对象。 (2)、数据是分类型的。 (3)、数据的含义称为数据的语义,数据与其语义是不可分的。 2、数据库:数据库是长期储存在计算机内、有组织的、可共享的大量数..._系统的数据管理逻辑

Mybatis-Plus报错:java.sql.SQLException: The server time zone value ‘�й���׼ʱ��‘ is unrecognized or repr_mybatis plus servertimezone=gmt+8未生效 原因-程序员宅基地

文章浏览阅读315次。java.sql.SQLException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value i_mybatis plus servertimezone=gmt+8未生效 原因

推荐文章

热门文章

相关标签