我想执行一个使用 PyQt5 用 python 编写的程序,然后迁移到 MacOS Catalina 下的 PySide2。使用 PyQt5 它执行得很好。我已经像 PyQt5 一样安装了 PySide2:
python3 -m pip install PyQt5
python3 -m pip install PySide2
macOS 随后重新启动。
现在,安装了 PySide2 后,当我尝试加载 Ui 文件时,我在 macOS 中遇到错误。
MRE 可在 Linux、Windows 和 macOS Catalina 下运行:
#!/usr/bin/env python3
# Standard library imports
import sys
# Third party imports
from PySide2.QtCore import (QMetaObject,
Slot)
from PySide2.QtWidgets import (QApplication,
QWidget,
QPushButton,
QHBoxLayout,
QMessageBox)
def show_about():
msg = QMessageBox()
msg.setText("About this app.")
msg.setStandardButtons(QMessageBox.Ok)
msg.exec_()
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
aboutButton = QPushButton("About")
aboutButton.setObjectName("aboutButton")
hbox = QHBoxLayout()
hbox.addStretch(1)
hbox.addWidget(aboutButton)
self.setLayout(hbox)
QMetaObject.connectSlotsByName(self)
self.setWindowTitle('Buttons')
@Slot()
def on_aboutButton_clicked(self):
show_about()
def main():
app = QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
MRE 在 macOS Catalina 下失败,但在 Linux 和 Windows 中工作:
#!/usr/bin/env python3
# Standard library imports
import sys
# Third party imports
from PySide2.QtWidgets import (QApplication,
QMainWindow)
from PySide2.QtUiTools import loadUiType
class MainWindow(QMainWindow, loadUiType("win_main.ui")[0]):
def __init__(self):
super().__init__()
self.setupUi(self)
Python 3.8.5 64位(从这里下载,没有HomeBrew等。
SMILET
相关分类