把上述代码打包exe可执行文件后解决窗口闪退的问题
时间: 2023-09-20 14:10:01 浏览: 167
要解决窗口闪退的问题,可以尝试以下方法:
1. 在程序的主函数中添加一行代码:
```python
if __name__ == '__main__':
ctypes.windll.shcore.SetProcessDpiAwareness(1) # 添加这行代码
app = QApplication(sys.argv)
# ...
```
这行代码可以让程序在高 DPI 显示器下运行时不会出现窗口闪退的问题。
2. 确保使用的 PyQt 版本与 Python 版本和操作系统版本匹配。可以在命令行中输入以下命令,查看 PyQt 和 Python 的版本:
```python
python -c "import PyQt5.QtCore; print(PyQt5.QtCore.PYQT_VERSION_STR)"
python --version
```
3. 尝试使用 PyInstaller 工具打包 exe 文件。PyInstaller 可以将 Python 代码和依赖项打包成一个可执行文件,方便在其他计算机上运行。可以在命令行中输入以下命令来安装 PyInstaller:
```python
pip install pyinstaller
```
然后,在命令行中进入 Python 代码所在的目录,执行以下命令来打包 exe 文件:
```python
pyinstaller --onefile your_script_name.py
```
这个命令会在 dist 目录下生成一个 exe 文件,可以尝试运行该文件,看是否还有窗口闪退的问题。如果还有问题,可以尝试在打包时加上一些参数,比如:
```python
pyinstaller --onefile --windowed --icon=your_icon.ico your_script_name.py
```
这些参数可以让打包后的 exe 文件不显示命令行窗口,并且可以设置程序图标。
阅读全文