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

智能推荐

Turn on ClearType。打开ClearType看英文资料不再那么费眼。-程序员宅基地

文章浏览阅读64次。下面是微软提供的在线打开ClearType 网址,装好插件之后按提示一步一步的点下去。发现还是比较爽的。呵呵~http://www.microsoft.com/typography/cleartype/tuner/Step1.aspx转载于:https://www.cnblogs.com/zwwon/archive/2007/07/10/812598.html..._chrome 英文和数字显示cleartype

jQuery.template.js 简单使用-程序员宅基地

文章浏览阅读125次。之前看了一篇文章《我们为什么要尝试前后端分离》,深有同感,并有了下面的评论:我最近也和前端同事在讨论这个问题,比如有时候前端写好页面给后端了,然后后端把这些页面拆分成很多的 views,有时候还会在这些 view 中写一些 c# 代码,突然有一天前端页面的样式出错了,但前端那里并没有问题,然后后端把前端叫过来,说你在我这里调吧,因为你没有后端的调试环境,然后前端就会很不爽,然后。。。你懂的!..._/template/pc/skin/js/jquery.js

天池:零基础入门NLP - 新闻文本分类_天池学习赛零基础入门nlp - 新闻文本分类完成-程序员宅基地

文章浏览阅读256次。天池:零基础入门NLP - 新闻文本分类赛题理解解题思路赛题理解赛题链接:https://tianchi.aliyun.com/competition/entrance/531810/information划重点:字符级匿名处理(防止人工标注答案)、14个分类类别(0-13)、评价标准为类别f1_score的均值(越大越好)解题思路【难点】数据形式是匿名化字符,无法分词【分析】文本数据是典型的非结构化数据,可能涉及特征提取和分类模型两个部分【思路】TF-IDF + 机器学习分类器_天池学习赛零基础入门nlp - 新闻文本分类完成

使用conda安装gcc_your compiler (g++ 4.8.5) may be abi-incompatible -程序员宅基地

文章浏览阅读2.2w次,点赞18次,收藏38次。!! WARNING !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Your compiler (g++ 4.8.5) may be ABI-incompatible with PyTorch! Please use a compiler that is ABI-compatible with GCC 4.9..._your compiler (g++ 4.8.5) may be abi-incompatible with pytorch! please use a

python可以实现科学计算吗_python科学计算-程序员宅基地

文章浏览阅读470次。python科学计算NumPy 是科学应用程序库的主要软件包之一,用于处理大型多维数组和矩阵,它大量的高级数学函数集合和实现方法使得这些对象执行操作成为可能。科学计算的另一个核心库是 SciPy。它基于 NumPy,其功能也因此得到了扩展。SciPy 主数据结构又是一个多维数组,由 Numpy 实现。这个软件包包含了帮助解决线性代数、概率论、积分计算和许多其他任务的工具。此外,SciPy 还封装了..._python不能用于科学计算

【自学Flutter】38 flutter_webview_plugin的使用-程序员宅基地

文章浏览阅读3.5k次。38 flutter_webview_plugin的使用1.源代码import 'package:flutter/material.dart';import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';void main() => runApp(MyApp());class MyApp extends..._flutter_webview_plugin

随便推点

Could not connect to https://mirrors.tuna.tsinghua.edu.edu.cn/anaconda/pkgs/free/noarch/_could not connect to mirrors.tuna.tsinghua.edu.cn-程序员宅基地

文章浏览阅读5k次。解决方法:删除 .condarc文件 。 .condarc以点开头,一般表示 conda 应用程序的配置文件,在用户的根目录 (windows:C:\users\username\,linux:/home/username/)。但对于.condarc配置文件,是一种可选的(optional)运行期配置文件,其默认情况下是不存在的。 ..._could not connect to mirrors.tuna.tsinghua.edu.cn

MAC安装git的三种方式-程序员宅基地

文章浏览阅读1.7w次,点赞7次,收藏25次。以上是在MAC操作系统中安装Git的三种不同方式。Homebrew是最方便的方式之一,但如果您不想使用Homebrew,则可以选择从官方Git网站下载安装程序或使用Xcode Command Line Tools安装Git。无论您选择哪种方法,都应该能够很容易地安装和使用Git。_mac安装git

基于风控特征相关度,挖掘贷中等场景中的存量客户价值|来看看相关实操_风控 建立存量客户的特征标签-程序员宅基地

文章浏览阅读836次。基于风控特征相关度,挖掘贷中等场景中的存量客户价值|来看看相关实操_风控 建立存量客户的特征标签

Internet Download Manager v6.36 Build 3 Final 注册版-IDM下载工具_ternet_download_manager 注册版-程序员宅基地

文章浏览阅读1.9k次。亲测可用Internet Download Manager(简称IDM)下载速度最多达其他下载工具5倍的下载具。Internet Download Manager的续传功能可以恢复因为断线、网络问题、计算机当机甚至无预警的停电导致下传到一半的软件。此程序具有动态档案分割、多重下载点技术,而且它会重复使用现有的联机,而不需再重新联机登入一遍。聪明的in-speed技术会动态地将所有设定应用到某种..._ternet_download_manager 注册版

华为Java社招面试经历详解【已拿到offer】_广州华为java招聘-程序员宅基地

文章浏览阅读3.2k次,点赞4次,收藏28次。这篇文章主要介绍了华为Java社招面试经历,详细记录了华为java面试的流程、相关面试题与参考答案,需要的朋友可以参考下。看看自己能答对多少,如果能回答70%的题目,就大胆去阿里以及各互联网公司试试身手吧。本篇建议大家收藏、备用~华为Java社招面试(已拿到offer)之前月底华为cloudsop部门打电话叫我要不要面试,当时正处于换工作的期间,于是就把简历发给华为hr,人事审核后经过一些列面试、机试,最终顺利拿到了offer,出于未来职业规划的考量,本人手里还有其他的一些offer,还没有定下来,顺_广州华为java招聘