PyQt5 + designer

  • 环境安装

1
2
pip install pyqt5 -i https://tuna.tsinghua.edu.cn.simple
pip install pyqt5-tools -i https://tuna.tsinghua.edu.cn.simple
  • 运行步骤

界面的创建工具在对应的python环境下,/Lib/site-packages/qt5_applicaitons/Qt/bin/designer.exe,保存后生成test.ui文件

1
pyuic5 -o test.py test.ui

pyuic5在对应的python环境下,/Scripts/pyuic5.exe,将文件转化为py文件

1
2
3
4
5
6
7
8
9
10
11
12
13
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow() # 创建窗体对象
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
# MainWindow启动代码
app = QApplication(sys.argv)
myWin = MyMainForm()
#将窗口控件显示在屏幕上
myWin.show()
sys.exit(app.exec_())
# MainForm启动代码
  • 项目打包

  • 创建.spec文件

    1
    pyi-makespec -F -w main.py

    -F表示打包成一个exe执行文件,-D表示打包成一个文件夹,-w表示不显示命令行

  • 文件配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    # -*- mode: python ; coding: utf-8 -*-


    block_cipher = None


    a = Analysis(
    ['main.py', 'cookie/getCookie.py', 'cookie/reader.py', 'process/getData.py', 'loggingHandler.py'], #这里存放需要打包的文件集合
    pathex=['C:/Users/YZF-JH/Desktop/TSQT'], #根目录
    binaries=[],
    datas=[('files/', 'files')], #其他资源,文件,图片
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
    )
    pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

    exe = EXE(
    pyz,
    a.scripts,
    [],
    exclude_binaries=True,
    name='main', #exe文件名
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    console=True, #命令行显示
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    )
    coll = COLLECT(
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='main',
    )
    • 运行文件

      1
      pyinstaller main.spec