Pycharm 下 Pyqt5 的配置图如下 (PyUIC5 和 PyUIC 功能一样)
:
-o $FileNameWithoutExtension$.py 生成的文件名可以自己设置,
$FileNameWithoutExtension$ 这个相当于原来的文件去掉扩展名。
Eric6 的默认格式是: -o Ui_$FileNameWithoutExtension$.py
Pycharm 里这些都要自己设,Eric6里都帮你建好,点编译就行了。
Eric6 编译的py文件里,最后多上一段:
if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
直接可以运行脚本了。下面是 Eric6 生成的对话框代码:
if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_())
Pycharm里还要自己写上,因为Qt Designer默认继承的object类,不提供show()显示方法,所以我们生成一个QWidget对象来重载我们设计的Ui_Form类,达到显示效果。
就这点区别,Pycharm这样属于代码与界面分离吧,新人搞了半天才明白,唉。
新建一个文件Main_go.py,导入我们设计的pycharm_test.py文件,实现代码与界面分离。
MainWindow.setCentralWidget(self.centralwidget)
MainWindow.setMenuBar(self.menubar)
MainWindow.setStatusBar(self.statusbar)
上面这三行要删了,不然运行时会报错,(为什么啊,唉,懒的管了。)
下面是Main_go.py的代码,复制粘贴,听说学python就不能去看代码,只要复制过来能用就行了。
from PyQt5 import QtWidgets from pycharm_test import Ui_MainWindow class mywindow(QtWidgets.QWidget): def __init__(self): super(mywindow, self).__init__() self.new = Ui_MainWindow() self.new.setupUi(self) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = mywindow() MainWindow.show() sys.exit(app.exec_())
还可以这样继承,可以少写一行代码是吧。-_-!
from PyQt5 import QtWidgets from pycharm_test import Ui_MainWindow class mywindow(QtWidgets.QWidget,Ui_MainWindow): def __init__(self): super(mywindow, self).__init__() self.setupUi(self) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = mywindow() MainWindow.show() sys.exit(app.exec_())