如何在 PyQt 5.12.2 上启用 macOS 暗模式?
Posted
技术标签:
【中文标题】如何在 PyQt 5.12.2 上启用 macOS 暗模式?【英文标题】:How to enable macOS dark mode on PyQt 5.12.2? 【发布时间】:2019-06-07 11:24:38 【问题描述】:例如,this page 声称最新版本的 PyQt5 应该为我提供 macOS Mojave 的自动暗模式,而无需更改任何内容...除了它没有。
考虑这个简单的例子(可以复制粘贴到终端):
exec("""\nfrom PyQt5 import QtCore, QtWidgets\n\nclass Ui_MainWindow(object):\n def setupUi(self, MainWindow):\n MainWindow.setObjectName("MainWindow")\n MainWindow.resize(674, 371)\n self.centralwidget = QtWidgets.QWidget(MainWindow)\n self.centralwidget.setObjectName("centralwidget")\n self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget)\n self.gridLayoutWidget.setGeometry(QtCore.QRect(50, 10, 601, 281))\n self.gridLayoutWidget.setObjectName("gridLayoutWidget")\n self.mpl_layoutBox = QtWidgets.QGridLayout(self.gridLayoutWidget)\n self.mpl_layoutBox.setContentsMargins(0, 0, 0, 0)\n self.mpl_layoutBox.setObjectName("mpl_layoutBox")\n self.pushButton = QtWidgets.QPushButton(self.centralwidget)\n self.pushButton.setGeometry(QtCore.QRect(280, 300, 113, 32))\n self.pushButton.setObjectName("pushButton")\n MainWindow.setCentralWidget(self.centralwidget)\n\n self.retranslateUi(MainWindow)\n QtCore.QMetaObject.connectSlotsByName(MainWindow)\n\n def retranslateUi(self, MainWindow):\n _translate = QtCore.QCoreApplication.translate\n MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))\n self.pushButton.setText(_translate("MainWindow", "PushButton"))\n\nif __name__ == "__main__":\n import sys\n\n app = QtWidgets.QApplication(sys.argv)\n MainWindow = QtWidgets.QMainWindow()\n ui = Ui_MainWindow()\n ui.setupUi(MainWindow)\n MainWindow.show()\n sys.exit(app.exec_())\n""")
我必须做什么才能启用暗模式?
【问题讨论】:
只需在具有pip install pyqt==5.12.2
的系统上运行此脚本即可在明暗模式下工作,即使在系统首选项级别切换它,也无需将其编译为 .app。
奇怪。不适合我!将它放在 venv 中会有所不同吗?编辑:不。
无法在 virtualenv 中工作。这似乎是这里的区别。
不适用于我的系统范围的解释器。添加了单行来测试它。
哪个系统范围的解释器?您是否验证了系统范围的解释器具有相同版本的 pyqt5?
【参考方案1】:
好的,所以我不清楚必须先将其编译为 .app,然后应将 NSRequiresAquaSystemAppearance
添加到*** Info.plist
,但这已解决。
【讨论】:
以上是关于如何在 PyQt 5.12.2 上启用 macOS 暗模式?的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 macOS 上使用 QThread 时 PyQt 应用程序崩溃或挂起?
在 macOS 上安装 PyQt4 时 C++ 标准库出现问题
在 macOS 和 Windows 上使用 PyInstaller 编译时,简单的 PyQt5 GUI 看起来像 GTK