我找到了一些关于如何将pyqt小部件最小化到系统托盘的材料,但我找不到我需要的东西。
我想在按钮点击时最小化窗口小部件,我不想覆盖默认关闭按钮,当人们点击窗口边框关闭时,它仍会关闭,但是当它点击我的按钮时,它将最小化到系统托盘
这是否可行,因为所有示例都尝试覆盖默认事件。 我附加的这个代码是在qtDesigner中创建的,它只有一个按钮,有点像游乐场,我希望有人可以帮忙,干杯。
brew upgrade
答案 0 :(得分:0)
Qt Designer创建一个用于填充另一个窗口小部件的类,它不是窗口小部件,因此建议创建一个继承自相应窗口小部件并使用Ui_Form类填充的类。有关更多信息,请阅读以下内容:
说到这一点,您必须使用showMinimized()
方法。
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.btn_name = QtWidgets.QPushButton(Form)
self.btn_name.setGeometry(QtCore.QRect(300, 30, 98, 33))
self.btn_name.setObjectName("btn_name")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.btn_name.setText(_translate("Form", "PushButton"))
class Form(QtWidgets.QWidget, Ui_Form):
def __init__(self, *args, **kwargs):
QtWidgets.QWidget.__init__(self, *args, **kwargs)
self.setupUi(self)
self.btn_name.clicked.connect(self.minimize)
def minimize(self):
self.showMinimized()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Form()
w.show()
sys.exit(app.exec_())