小编Nag*_*ani的帖子

Pyinstaller无法与线程一起正常工作

运行bat文件的程序,其中包含使用Qthread运行可执行文件(longTask)的指令,但是当我使用Pyinstaller通过以下命令创建可执行文件时,该程序无法按预期工作。我给“ --windowed”提供了标准I / O的控制台窗口

pyinstaller --onefile --windowed main.py

但是有趣的是,当我删除--windowed参数时,它可以按预期工作

pyinstaller --onefile main.py
Run Code Online (Sandbox Code Playgroud)

这是代码:

from PyQt4.Qt import *
import subprocess


def callSubprocess():
    page = QWizardPage()
    page.setTitle("Run myLongTask")

    runButton = QPushButton("Run")
    progressBar = QProgressBar()
    procLabel = QLabel()
    procLabel1 = QLabel()
    progressBar.setRange(0, 1)

    layout = QGridLayout()
    layout.addWidget(runButton, 0, 0)
    layout.addWidget(progressBar, 0, 1)
    layout.addWidget(procLabel)
    layout.addWidget(procLabel1)

    # Calls thread class
    myLongTask = TaskThread()
    runButton.clicked.connect(lambda: OnStart(myLongTask, progressBar, procLabel1))
    myLongTask.taskFinished.connect(lambda: onFinished(progressBar, procLabel))
    page.setLayout(layout)
    return page


def OnStart(myLongTask, progressBar, procLabel1):
    progressBar.setRange(0, 0)
    myLongTask.start()
    # I am waiting until …
Run Code Online (Sandbox Code Playgroud)

python pyinstaller pyqt4 qthread

6
推荐指数
1
解决办法
1098
查看次数

标签 统计

pyinstaller ×1

pyqt4 ×1

python ×1

qthread ×1