用 MQL 编写的用户界面图库 - 页 5

 

再次尝试将控件集成到表格中。与之前的尝试相比,它更加成功,但远非最佳。


 

这里显然更上一层楼....


 

天啊,这真的是用我的标记语言 MQL5 写的。)

今天的最后一张图片。明天继续。


 

令人印象深刻。已经做了很多工作!

遗憾的是,我对第三方开发人员创建的用户界面元素有负面的体验。我遇到的绝大多数窗口只有在特定的显示器分辨率和 Windows 属性中 100% 的缩放值下才能正常显示。而在 4K 分辨率和 175% 缩放比例下(我的情况),控件 变得无法阅读或相互重叠。

顺便说一下,这也适用于借助 MetaEditor 中包含的用户界面类创建的窗口。

在创建窗口时,您是否经常在 Windows 设置中检查它们在不同屏幕分辨率和缩放值下的效果?

 
E38 控件 变得无法阅读或相互重叠。

顺便说一下,这也适用于借助 MetaEditor 软件包中的用户界面类创建的窗口。

在创建窗口时,您是否经常在 Windows 设置中检查它们在不同屏幕分辨率和缩放值下的外观?

谢谢。
在开发这个用户界面时,4K 格式还是个新鲜事物,不像现在这样普及,所以不存在这样的问题。更确切地说,我不知道 4K 的成本,因为没有人提出过这个问题。不过,即使我遇到了这个问题,我也无法在 MQL 层面上解决它。很可能,我会建议用户使用标准显示器,直到 MQ 开发人员找到合适的解决方案并升级语言和终端。然后他就会升级他的图形。

但结果并非如此)。

已添加:

关于检查窗口和面板在不同屏幕分辨率下的显示效果,我并没有刻意去做这样的检查,因为我的用户界面很少有用户提出抱怨和意见。也许问题会被发现,但还是那句话--这些问题在 MQL 层面很难解决。
 
Реter Konow #:
谢谢。
在开发这个用户界面时,4K 格式还是个新鲜事物,不像现在这样普及,所以不存在这个问题。更确切地说,我不知道 4K 的成本,因为没有人提出来。不过,即使我遇到了这个问题,我也无法在 MQL 层面上解决它。很可能,我会建议用户使用标准显示器,直到 MQ 开发人员找到合适的解决方案并升级语言和终端。然后他就会升级他的图形。

但结果并非如此)。

已添加:

关于检查窗口和面板在不同屏幕分辨率下的显示效果,我并没有刻意去做这样的检查,因为我的用户界面很少有用户提出抱怨和意见。也许问题会被发现,但还是那句话--这些问题在 MQL 层面很难解决。
在终端属性中早就有显示器的 DPI,在帮助中也有一个计算图形对象大小的例子。
 
Artyom Trishkin #:
在终端属性中,长期以来都有显示器的 DPI,在帮助中也有一个计算图形对象大小的例子。
因此,如果我遇到这样的问题,我可以很容易地解决。但是,正如我之前所说,我没有遇到过这样的问题。我还没有学会在出现问题之前寻找解决方案,但我已经很努力了)。

对了,帮助中还有解决 4K 问题的例子吗?
 
Реter Konow #:
帮助中也有解决 4K 问题的例子吗?

我们在讨论什么问题?

 
Artyom Trishkin #:

我们在谈论什么样的问题?

帖子 #44 中的问题。

顺便说一句,很奇怪的是,你所说的帮助中的解决方案并没有应用到 ME 的本地用户界面库中,......从上面那个人的话来看是这样的。
 
Реter Konow #:
第 44 号帖子中的那个。

顺便说一句,很奇怪的是,你所说的帮助中的解决方案并没有应用到 ME 的本地用户界面库中,......从上面那位用户的话来看是这样的。

在这里(TERMINAL_SCREEN_DPI):

缩放因子计算 的一个例子

//--- создаём кнопку шириной 1.5 дюйма на экране
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // получим DPI монитора пользователя
int base_width = 144;                                      // базовая ширина в экранных точках для стандартных мониторов c DPI=96
int width      = (button_width * screen_dpi) / 96;         // вычислим ширину кнопки для монитора пользователя (с учётом его DPI)
...
 
//--- вычисление коэффициента масштабирования в процентах
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- использование коэффициента масштабирования
width=(base_width * scale_factor) / 100;

以这种方式使用时,在不同分辨率的显示器上,图形资源 的大小将完全相同。同时,控制元素(按钮、对话窗口等)的大小将与个性化设置一致。

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Идентификаторы для получения информации о клиентском терминале функциями TerminalInfoInteger() и TerminalInfoString() . В качестве параметра эти...