pyqt5GUI使用pyinstaller打包后菜单栏收缩

在pycharm直接运行是正常显示的,但采用pyinstaller打包成exe后,菜单栏就会被收缩

img

img

如果在使用PyInstaller打包成exe后发现菜单栏被收缩的问题,这可能是由于PyQt的默认样式与PyInstaller的打包方式不兼容所导致的。

一种解决方法是在代码中显式地设置PyQt的样式,以确保打包后的exe文件能够正确显示菜单栏。可以尝试以下步骤:

  1. 首先,确保你已经安装了pyqt5-tools库,可以通过运行pip install pyqt5-tools来安装。

  2. 在代码的开头添加以下导入语句:

import os
os.environ['QT_API'] = 'pyqt5'
  1. 在代码的主窗口类中(如果有的话),在构造函数中添加以下代码,显式设置PyQt的样式:
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

        # 设置PyQt的样式
        app = QApplication.instance()
        app.setStyle('Fusion')

这将使用"fusion"样式来替代默认的样式,通常在大多数平台上能够保持一致和正确显示。

重新使用PyInstaller进行打包,并测试生成的exe文件是否能够正确显示菜单栏。

加一些窗口参数试一试

pyinstaller --onefile --windowed --noconsole script.py


是在同一台机器运行的吗?

有可能是打包环境和开发环境的版本不同导致的.