解决 OS X 上 PyQt 程序隐藏在其他窗口下的问题

一个普通的 PyQt 程序,在 Windows 上运行很正常,不管是通过命令行运行还是用 Pyinstaller 打包后运行,启动后自动在最顶层显示。

而在 OS X 下就不正常了,经过测试,不管在 Terminal 还是用 Pyinstaller 打包成 App ,启动后都跑到其它程序后面去了,需要点击点击下图标才能切换成当前程序。

解决方法很简单,调用 QWidgetraise_() 方法,让 widget 跑到最顶层。

from PyQt4 import QtGui

if __name__ == '__main__':
    import sys
    app = QtGui.QApplication(sys.argv)
    label = QtGui.QLabel("Hello")
    label.show()
    if sys.platform == 'darwin':
        label.raise_()
    sys.exit(app.exec_())