wxPython - 框架大部分显示在屏幕外,self.Center() 不起作用 - 与系统显示设置有关?

问题描述

*注意:我已经确定这个问题与我的显示设置有关。当我在我的笔记本电脑上运行我的代码时(win.10 显示设置:res. = 1920x1080,scale = 150%),问题出现了。当我在工作时,将笔记本电脑连接到更大的外接显示器(w10 显示设置:分辨率 1920x1080,比例 = 100%),一切都很好。有没有办法创建这个框架,无论用户显示设置如何,它都会正确显示?我怀疑我的许多用户都会遇到这个问题——我们都使用相同型号的笔记本电脑和类似的外接显示器,我上面提到的显示设置是各个显示器的 W10 认(/“推荐”)显示设置。

我有一个程序运行良好,直到最后一帧。在以前的版本中,最后一帧显示正常。然后,当我将绘图画布添加到框架中时,现在需要它更宽,我花了很长时间让框架调整自身大小以适应绘图 - Layout() 不起作用,{{ 1}} 不起作用.. 所以我只是硬编码了大小。

现在我的问题是,当框架显示时(仅 SetSizerAndFit(sizer),它出现在屏幕左上半部分的大部分区域(见下图)。这是问题模型的代码。实际上这个显示很大 - 仍然位于屏幕边界之外,但现在也向各个方向延伸超过屏幕。检查工具仍然显示它只有 1290x945(我使用的是具有 1920x1080 屏幕的笔记本电脑)但这显然不对。无论如何,该框架仍与我的程序中的真实框架位于同一位置(屏幕外)。

我做错了什么?

复制/粘贴我在回复评论时遗漏的重要部分:忘记提及使用 resframe = ResultsFrame(None); resframe.Show() 以及仅将 pos 排除在 pos = wx.DefaultPosition 之外的行为是相同的;我也无法拖动窗口,因为整个顶部栏都在屏幕外。主要问题不是大小,而是位置。我编写的虚拟脚本(无论出于何种原因)在屏幕上看起来很大(尽管在检查工具中显示了正确的大小),但在我正在编写的实际应用程序中,框架大小正确,只是位于屏幕外。在虚拟脚本中看到的尺寸问题很奇怪(inspectionTool 中的尺寸都返回 1920x945 但框架看起来远大于屏幕尺寸,尽管是 1920x1080),但在我的实际程序中没有发生,所以我更关心的是定位。

__init__

Frame appearing offscreen,with inspector for details

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)