PyQt Qt Designer 窗口最小化按钮列表
Posted
技术标签:
【中文标题】PyQt Qt Designer 窗口最小化按钮列表【英文标题】:PyQt QtDesigner lost of the windows minimize buttons 【发布时间】:2014-08-14 07:42:51 【问题描述】:我的问题只出在 Qtdesigner 中。 我正在使用 QtDesigner v4.8.4 为 pyqt 项目定义我的 HMI。在这个编辑器中,我淹没的窗口在右上角有一个缩小和一个关闭按钮。很抱歉我想用截图给你看,但我没有足够的声誉。
当我使用它或预可视化它(使用 Ctrl + R)时,我失去了窗口的“最小化按钮”及其功能。 你有同样的行为吗?
我有一个没用的?按钮和关闭按钮。我怎样才能保持它以最小化我的窗口?
非常感谢您的建议!
【问题讨论】:
请提供更多详细信息,例如,您实现的类、pyqt 版本等...谢谢 我知道了,我和你一样,但不用担心。当您在 pyqt 中实现时,默认情况下它具有所有按钮(最小、最大和关闭按钮)。或者您可以设置要显示的指定按钮。 嗯好吧,所以它被 pyQt 代码纠正了?您能否展示一个实现右上角最小化按钮的示例,因为对于我的脚本,当我运行它时,我的行为与您使用 Ctrl R 预可视化它时的行为相同,减少按钮消失了!谢谢 【参考方案1】:当我使用它或预可视化它(使用 Ctrl + R)时,我失去了窗口的“最小化按钮”及其功能。
答案:这不是错误,我只是预览您的小部件。如果您在 pyqt 中的实现可以看到 windows 的所有按钮。
图片:Qt4 Designer 的 Show previsualize 没有“最小化按钮”
图片:显示 PyQt4 的运行(默认有“最小化按钮”)”
能否请您展示一个实现右上角的最小化按钮的示例,因为对于我的脚本
好的,关键字是通过这个方法QWidget.changeEvent (self, QEvent)
在widget中实现事件,请看我的示例代码,希望对您有所帮助;
import sys
from PyQt4 import QtCore, QtGui, uic
(loadUserInterface, loadQWidget) = uic.loadUiType('QWelcomeWidget.ui')
class QWelcomeWidget (loadQWidget):
def __init__ (self, parent = None):
loadQWidget.__init__(self, parent)
self.ui = loadUserInterface()
self.ui.setupUi(self)
def changeEvent (self, eventQEvent):
if eventQEvent.type() == QtCore.QEvent.WindowStateChange:
if self.windowState() & QtCore.Qt.WindowMinimized:
print 'Window Minimized'
QtGui.QWidget.changeEvent(self, eventQEvent)
if __name__ == '__main__':
appQApplication = QtGui.QApplication(sys.argv)
mainQWidget = QWelcomeWidget()
mainQWidget.show()
# Start Application
sys.exit(appQApplication.exec_())
参考文献:http://pyqt.sourceforge.net/Docs/PyQt4/qwidget.html#changeEvent
问候,
【讨论】:
感谢您提供如此长且非常完整的解释。它回答了我的问题,实际上我使用的是对话框而不是表单。万分感谢。祝你有美好的一天!【参考方案2】:使用将您的 .ui 文件转换为 (.py)python 文件
pyuic4 filename.ui
sudo pyuic4 -x ptqt_filename.ui -o python_file_name.py
现在运行那个python文件,你就可以看到所有的控件了
python pyqt_first_ui.py
【讨论】:
以上是关于PyQt Qt Designer 窗口最小化按钮列表的主要内容,如果未能解决你的问题,请参考以下文章
Qt Designer PyQt5 覆盖 CloseEvent 子窗口不起作用
如何使用 pyqt5 和 qt 设计器从主对话框窗口打开第二个窗口
PyQt5 keyPressEvent 不适用于终止 App Qt Designer