解决pyside2的uic转换C++代码的问题
不能直接用pyside2包目录下的uic.exe文件。可能是电脑上面安装了C++的Qt,所以Uic会将ui文件装换成C++源代码,而不是Python源代码。
为此,pyside2提供了专门的装换插件,pyside2-uic,该插件能将ui文件装换为Python代码。
在pycharm中配置如下:
下面是参数
$FileName$ -o $FileNameWithoutExtension$.py
from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *
import sys
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.pushButton = QPushButton(self.centralwidget)
self.pushButton.setObjectName(u"pushButton")
self.pushButton.setGeometry(QRect(160, 160, 101, 31))
self.pushButton_2 = QPushButton(self.centralwidget)
self.pushButton_2.setObjectName(u"pushButton_2")
self.pushButton_2.setGeometry(QRect(440, 210, 75, 23))
self.pushButton_3 = QPushButton(self.centralwidget)
self.pushButton_3.setObjectName(u"pushButton_3")
self.pushButton_3.setGeometry(QRect(210, 340, 75, 23))
self.label = QLabel(self.centralwidget)
self.label.setObjectName(u"label")
self.label.setGeometry(QRect(590, 360, 54, 12))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName(u"menubar")
self.menubar.setGeometry(QRect(0, 0, 800, 23))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QStatusBar(MainWindow)
self.statusbar.setObjectName(u"statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QMetaObject.connectSlotsByName(MainWindow)
# setupUi
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
self.pushButton.setText(QCoreApplication.translate("MainWindow", u"PushButton", None))
self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"PushButton", None))
self.pushButton_3.setText(QCoreApplication.translate("MainWindow", u"PushButton", None))
self.label.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None))
# retranslateUi
if __name__ == "__main__":
app = QApplication(sys.argv)
mainWindow = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(mainWindow)
ui.pushButton.setText('牛逼')
ui.label.setText('哈哈哈哈')
mainWindow.setWindowTitle('我的窗口')
mainWindow.show()
sys.exit(app.exec_())