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-Qt Designer鼠标+键盘事件

PyQt5 keyPressEvent 不适用于终止 App Qt Designer

第15.13节 PyQt(Python+Qt)入门学习:Qt Designer的Spacers部件详解

Qt Designer 使小部件在布局中与另一个小部件重叠