网站开发 ppt,近期重大新闻事件,全媒体网站的建设方案,建筑工程有限公司起名大全目录 1、最小化至托盘
1#xff09;重写系统托盘类#xff0c;设置托盘图标等属性
2#xff09;将具体的窗口放入托盘
2、取消任务栏界面图标
3、问题汇总
1#xff09;退出后托盘图标还是存在#xff0c;没有消失
2#xff09;最小化后左下角会出现 窗口
3#…目录 1、最小化至托盘
1重写系统托盘类设置托盘图标等属性
2将具体的窗口放入托盘
2、取消任务栏界面图标
3、问题汇总
1退出后托盘图标还是存在没有消失
2最小化后左下角会出现 窗口
3创建快捷方式后运行软件无图标 1、最小化至托盘
pyqt5 窗口最小化到windows托盘_Marvin_Xavier的博客-CSDN博客_pyqt5 最小化到托盘pyqt5创建的程序一般是默认可以最小化到任务栏的这也是一般程序都会有的功能。平时我们使用的有些程序也会最小化到任务栏旁边的托盘上就是在时间日期旁边的小图标这个需要额外在pyqt5中写点代码设置下了。首先我们创建一个demo程序这个程序就是创建一个窗口窗口中有一个按钮和textBrowser按下按钮后可以在textBrowser中写一个helloworld如果不知道在vscode下如何开发puqt5可以参看下这个https://blog.csdn.net/marwenx/arthttps://blog.csdn.net/marwenx/article/details/107200049
1重写系统托盘类设置托盘图标等属性
具有以下功能
鼠标右键点击托盘图标会有三个功能的菜单栏启动、显示通知、退出
from PyQt5 import QtWidgets,QtCore,QtGui
import ospath os.path.abspath(__file__)
filePath os.path.dirname(path)class TrayIcon(QtWidgets.QSystemTrayIcon):def __init__(self, MainWindow, parentNone):super(TrayIcon, self).__init__(parent)self.ui MainWindowself.createMenu()def createMenu(self):self.menu QtWidgets.QMenu()self.showAction1 QtWidgets.QAction(启动, self, triggeredself.show_window)self.showAction2 QtWidgets.QAction(显示通知, self, triggeredself.showMsg)self.quitAction QtWidgets.QAction(退出, self, triggeredself.quit)self.menu.addAction(self.showAction1)self.menu.addAction(self.showAction2)self.menu.addAction(self.quitAction)self.setContextMenu(self.menu)# 设置图标self.setIcon(QtGui.QIcon(filePath/resources/icon.jpg))self.icon self.MessageIcon()# 把鼠标点击图标的信号和槽连接self.activated.connect(self.onIconClicked)def showMsg(self):self.showMessage(喝水提醒小工具, 点击退出, self.icon)def show_window(self):# 若是最小化则先正常显示窗口再变为活动窗口暂时显示在最前面self.ui.showNormal()self.ui.activateWindow()def quit(self):QtWidgets.qApp.quit()# 鼠标点击icon传递的信号会带有一个整形的值1是表示单击右键2是双击3是单击左键4是用鼠标中键点击def onIconClicked(self, reason):if reason 2 or reason 3:self.showMessage(喝水提醒小工具, 点击退出, self.icon)if self.ui.isMinimized() or not self.ui.isVisible():# 若是最小化则先正常显示窗口再变为活动窗口暂时显示在最前面self.ui.showNormal()self.ui.activateWindow()self.ui.setWindowFlags(QtCore.Qt.Window)self.ui.show()else:# 若不是最小化则最小化self.ui.showMinimized()self.ui.setWindowFlags(QtCore.Qt.SplashScreen)self.ui.show()
2将具体的窗口放入托盘 tray TrayIcon(main_) tray.show() 完整代码
from main import Ui_MainWindow as Main_Ui # 导入利用Qt设计的界面代码
from Tray import TrayIconfrom PyQt5.QtWidgets import QMessageBox,QMainWindow,QApplication
from PyQt5 import QtCore
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlotimport sys,psutil,os,datetime,pyttsx3,timepath os.path.abspath(__file__)
filePath os.path.dirname(path)# 逻辑代码
class main_logic(QMainWindow,Main_Ui):def __init__(self):super(main_logic, self).__init__()self.setupUi(self)if __name__ __main__:app QApplication(sys.argv)main_ main_logic()main_.showMinimized()tray TrayIcon(main_)tray.show()sys.exit(app.exec_())
2、取消任务栏界面图标 最小化的时候如果只是按照上面进行的话最小化到托盘后任务栏也会有图标这时候通过设置窗口属性可以取消任务栏图标 不足是会导致最小化等按钮没有需要通过自定义按钮或者动作action来实现这些功能 这里我是通过工具栏和action重写了最小化关闭按钮 pyqt5 隐藏任务栏图标_Marvin_Xavier的博客-CSDN博客_pyqt隐藏任务栏pyqt5中隐藏任务栏图标很简单只需要一行代码即可。MainWindow.setWindowFlags(QtCore.Qt.SplashScreen | QtCore.Qt.FramelessWindowHint)首先还是先了解下pyqt的窗口风格的设置setWindowFlags(Qt.WindowFlags)函数Qt.WindowFlags类如下1.窗口类型QtCore.Qt.Widget#插件默认窗口有最小化、最大化、关闭按钮QtCore.Qt.Window#https://blog.csdn.net/marwenx/article/details/107226153
MainWindow.setWindowFlags(QtCore.Qt.SplashScreen | QtCore.Qt.FramelessWindowHint)
setWindowFlags(Qt.WindowFlags)函数Qt.WindowFlags类如下1.窗口类型QtCore.Qt.Widget
#插件默认窗口有最小化、最大化、关闭按钮QtCore.Qt.Window
#普通窗口有最小化、最大化、关闭按钮QtCore.Qt.Dialog
#对话框窗口有问号和关闭按钮QtCore.Qt.Popup
#弹出窗口窗口无边框化QtCore.Qt.ToolTip
#提示窗口窗口无边框化无任务栏窗口QtCore.Qt.SplashScreen
#飞溅屏幕窗口无边框化无任务栏窗口QtCore.Qt.SubWindow
#子窗口窗口无按钮但有标题栏2.使用自定义外观的顶层窗口标志QtCore.Qt.MSWindowsFixedSizeDialogHint
#窗口无法调整大小QtCore.Qt.FramelessWindowHint
#窗口无边框化QtCore.Qt.CustomizeWindowHint
#有边框但无标题栏和按钮不能移动和拖动QtCore.Qt.WindowTitleHint
#添加标题栏和一个关闭按钮QtCore.Qt.WindowSystemMenuHint
#添加系统目录和一个关闭按钮QtCore.Qt.WindowMaximizeButtonHint
#激活最大化和关闭按钮禁止最小化按钮QtCore.Qt.WindowMinimizeButtonHint
#激活最小化和关闭按钮禁止最大化按钮QtCore.Qt.WindowMinMaxButtonsHint
#激活最小化、最大化和关闭按钮
#相当于QtCore.Qt.WindowMaximizeButtonHint|QtCore.Qt.WindowMinimizeButtonHintQtCore.Qt.WindowCloseButtonHint
#添加一个关闭按钮QtCore.Qt.WindowContextHelpButtonHint
#添加问号和关闭按钮像对话框一样QtCore.Qt.WindowStaysOnTopHint
#窗口始终处于顶层位置QtCore.Qt.WindowStaysOnBottomHint
#窗口始终处于底层位置 3、问题汇总
pyqt5 关闭程序显示提示信息最小化程序到托盘隐藏任务栏图标_Marvin_Xavier的博客-CSDN博客_pyqt5 最小化到托盘这个程序主要完成几个目的1. 主窗口控件最小化等操作后正常可用点击按钮会在textBrowser中加入一行hello world2. 点击右上角x键可以显示提示信息且按钮功能正常退出程序或者最小化到托盘3. 最小化到托盘后实现两个功能左键单击显示或隐藏主界面右键显示显示选线可以关闭或者显示主界面1. 首先用designer新建了一个demo这个demo上只有两个控件一个是textBrowser一个是pushButton直接从designer侧边拖.https://blog.csdn.net/marwenx/article/details/107226987
1退出后托盘图标还是存在没有消失
加上一句在退出前先将托盘图标设置为不可见
# 函数功能退出程序def quit(self):self.setVisible(False) # 托盘图标会自动消失QtWidgets.qApp.quit()
2最小化后左下角会出现 窗口 def onIconClicked(self, reason):if reason 2 or reason 3:# self.showMessage(Message, skr at here, self.icon)if self.ui.isMinimized() or not self.ui.isVisible():#若是最小化则先正常显示窗口再变为活动窗口暂时显示在最前面self.ui.showNormal()self.ui.activateWindow()self.ui.setWindowFlags(QtCore.Qt.Window)self.ui.show()else:#若不是最小化则最小化self.ui.showMinimized()self.ui.setWindowFlags(QtCore.Qt.SplashScreen)self.ui.show()# self.ui.show() 修改为
def onIconClicked(self, reason):if reason 2 or reason 3:# self.showMessage(Message, skr at here, self.icon)if self.ui.isMinimized() or not self.ui.isVisible():#若是最小化则先正常显示窗口再变为活动窗口暂时显示在最前面self.ui.showNormal()self.ui.activateWindow()self.ui.setWindowFlags(QtCore.Qt.Window)self.ui.show()else:self.ui.close()
通过托盘图标双击启动后再点击关闭后左下角就消失了
3创建快捷方式后运行软件无图标
有时候图标我们用的是相对路径在创建快捷方式的时候会出错我们利用绝对路径
path os.path.abspath(__file__)
filePath os.path.dirname(path)
self.setIcon(QtGui.QIcon(filePath/resources/icon.jpg))