【问题标题】:pyqtgraph axes not displaying correctlypyqtgraph 轴未正确显示
【发布时间】:2017-12-19 20:32:40
【问题描述】:

我最近在将 pyqt 从 PyQt4 更新到 PyQt5 后开始使用 PyQt5,并注意到使用 pyqtgraph 生成的所有绘图的轴位置存在持续错误(见附图)。 x 轴不延伸穿过窗口的底部,并且 y 轴未连接到左下角的 x 轴。此外,大 x 值或小 y 值的轴标签无法准确表示轨迹。

下图是运行产生的:

import pyqtgraph as pg
pg.plot([0,1,2,3,4,5,6,7,8,9],[1,2,4,5,7,8,10,11,13,14])

我在我的 Windows 10 机器上使用 anaconda 创建了一个新的 python 环境来测试这个问题。 conda list qt 的输出是:

pyqt                      5.6.0                    py35_2
pyqtgraph                 0.10.0                   py35_0
qt                        5.6.2                    vc14_5  [vc14]

我尝试使用不同版本的 Python(3.5.3 和 3.6)并删除并重新安装所有 anaconda 发行版,但均未成功。我真的很感激这个问题的任何帮助。提前致谢。

编辑 1: 我应该提到我在外接显示器上运行这个程序。我刚刚发现,如果我将绘图窗口拖到较小的笔记本电脑显示器上,轴就会卡入正确的位置。我还没有发现如何在外接显示器上正确显示绘图,但我怀疑这可能与 QT DPI 缩放环境变量有关。

【问题讨论】:

  • 在特定的桌面配置中遇到了同样的问题:如果我的主显示器上有桌面比例,例如125%,我在上面启动我的应用程序,然后在辅助监视器上没有比例,我在上面显示图形窗口,图形绘制将关闭。如果我删除桌面比例,将两个监视器设置为使用相同的比例,或者将图形窗口移动到主监视器,问题就会消失。不确定桌面比例是如何实际应用的,但似乎 pyqtgraph 或它使用的某些 api 错误地假设辅助监视器上的比例相同。

标签: python qt windows-10 pyqt5 pyqtgraph


【解决方案1】:

我找到了两种可能的解决方案:

1) 在Qt GUI事件循环开始设置DPI后可以添加下面这行app.setAttribute(QtCore.Qt.AA_Use96Dpi)

2) 外接显示器的 Windows 设置显示缩放参数必须与主显示器(在我的情况下是笔记本电脑显示器)的显示缩放值匹配。

【讨论】:

  • 这实际上破坏了我的第一台显示器上的轴......我想知道是否有人对这个多显示器问题有另一种可能的解决方案
猜你喜欢
  • 1970-01-01
  • 2014-05-17
  • 2022-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
  • 1970-01-01
相关资源
最近更新 更多