Eric6与Pycharm使用Pyqt5 编译的区别

Pycharm 下 Pyqt5 的配置图以下 (PyUIC5 和 PyUIC 功能同样)python

app

 

-o $FileNameWithoutExtension$.py 生成的文件名能够本身设置,ui

$FileNameWithoutExtension$ 这个至关于原来的文件去掉扩展名。spa

Eric6 的默认格式是: -o Ui_$FileNameWithoutExtension$.py设计

Pycharm 里这些都要本身设,Eric6里都帮你建好,点编译就好了。orm

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类,达到显示效果。get

就这点区别,Pycharm这样属于代码与界面分离吧,新人搞了半天才明白,唉。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_())
相关文章
相关标签/搜索