【问题标题】:PyQt: Always on topPyQt:始终处于领先地位
【发布时间】:2010-12-27 20:33:04
【问题描述】:

这是在 PyQt4、Linux 和 Python 2.5 上

我可以让 PyQt 将我的窗口设置为“始终在顶部”而不是其他应用程序吗?

例如,在 GTK 中我使用属性:Modal。

现在,在 PyQt 中,我正在使用 QWidget,但是,我找不到这样做的方法。

有什么想法吗??

【问题讨论】:

    标签: python pyqt


    【解决方案1】:

    WindowStaysOnTopHint window flag 传递给QMainWindow(或使用setWindowFlags)。

    顾名思义,这是对窗口管理器的提示(不是硬性保证)。

    最简单的例子:

    import sys
    from PyQt4 import QtGui, QtCore
    
    class mymainwindow(QtGui.QMainWindow):
        def __init__(self):
            QtGui.QMainWindow.__init__(self, None, QtCore.Qt.WindowStaysOnTopHint)
    
    app = QtGui.QApplication(sys.argv)
    mywindow = mymainwindow()
    mywindow.show()
    app.exec_()
    

    【讨论】:

    • QtGui.QMainWindow.__init__(self, None, QtCore.Qt.WindowStaysOnTopHint) 不会被简化为:super().__init__(self, None, QtCore.Qt.WindowStaysOnTopHint)
    • 有没有办法让窗口在创建时弹出最前面,但并不总是停留在最前面?
    • @NuclearPeon 仅当您使用单继承时才相同。 rhettinger.wordpress.com/2011/05/26/super-considered-super
    【解决方案2】:
    setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
    

    setwindowaFlags 是一种可以从form 对象调用它的方法,并且只需一个参数是一个常量QtCore.Qt.WindowStaysOnTopHint,它指的是使您的表单保持在顶部

    【讨论】:

    • 也许你可以添加一行解释?
    猜你喜欢
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多