【问题标题】:Design becomes ugly after Pyinstaller builds appPyinstaller 构建应用后设计变得丑陋
【发布时间】:2019-10-23 21:52:35
【问题描述】:

我在 python+PyQt5 上有一个应用程序,我正在使用 Pyinstaller for MacOS 通过命令构建它:

pyinstaller --windowed main.py

它在“district”目录中创建了一个“main.app”文件,但随后出现问题:

应用变丑了!首先,当我在没有编译的情况下运行它时,它使用系统当前外观。编译的应用程序总是很轻。 其次,antializing 或相关的东西是完全错误的。线条很丑,有些文字几乎不可读。附上截图。

【问题讨论】:

  • 因为这是一台Mac,我怀疑这是与视网膜模式有关的问题。看起来就像 2x2 像素就是一个像素,如果应用没有明确支持 Retina 模式,就会发生这种情况。
  • 我尝试添加“QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)”(我相信应该启用视网膜模式支持),但到目前为止没有明显效果。
  • 可悲的是,这就是我所得到的,我对 Mac 编程不太熟悉 :( 抱歉

标签: python macos pyqt pyqt5 pyinstaller


【解决方案1】:

看起来这条斜线的来源是抗锯齿。从源代码启动时会自动开启(通过系统样式?),但编译版本必须手动开启:

qp = QtGui.QPainter()
qp.begin(self)
qp.setRenderHint(0x01) #have no idea why QtGui.QPainter.RenderHint.Antialiasing not working
qp.end()

编辑: 实际上,这确实是视网膜的问题。

info_plist={
    'NSPrincipleClass': 'NSApplication',
    'NSAppleScriptEnabled': False,
    'NSHighResolutionCapable': 'True'
     }

应在 .spec 文件中添加到应用调用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 2011-06-21
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多