PyQt5学习笔记4_loadUi加载ui文件

开发环境:PyQt 5.5.1 Python 3.4.4 Qt 5.6.3 PyInstaller 3.2.1

  1. 加载ui文件
    在Qt Creator中编辑好所需的ui文件后,在其目录下新建一个py文件,代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.uic import loadUi


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        loadUi('pyflashloader_isp.ui', self)
        self.setFixedSize(self.sizeHint())

app = QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec())

效果如下:
PyQt5学习笔记4_loadUi加载ui文件_第1张图片
2. Pyinstaller生成exe文件
若使用Bundling to One File的方式将上述代码生成为单一的exe文件,则需连同ui文件一同打包。方法是在使用Pyinstaller打包时使用“–add-data”选项,命令行截图如下:
PyQt5学习笔记4_loadUi加载ui文件_第2张图片
此外,参考Run-time Information还需对py文件略作修改,代码如下:

import os, sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.uic import loadUi


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        if getattr(sys, 'frozen', False):
            # we are running in a bundle
            bundle_dir = sys._MEIPASS
        else:
            # we are running in a normal Python environment
            bundle_dir = os.path.dirname(os.path.abspath(__file__))
        loadUi(bundle_dir + '\pyflashloader_isp.ui', self)
        self.setFixedSize(self.sizeHint())

app = QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec())

你可能感兴趣的:(Qt)