MQL ile yazılmış kullanıcı arayüzleri galerisi - sayfa 5

 

Yine kontrolleri tablolara entegre etme girişimi. Önceki denemelerden daha başarılı, ancak en iyisi olmaktan uzak.


 

Burada açıkça bir üst seviyeye taşınmış....


 

Dostum, bu gerçekten MQL5'teki işaretleme dilimde yazılmış:))

Bugünlük son resim. Devamı yarın.


 

Etkileyici. Çok fazla çalışma yapılmış!

Ne yazık ki, üçüncü taraf geliştiriciler tarafından oluşturulan kullanıcı arayüzü öğeleriyle ilgili olumsuz bir deneyimim var. Karşılaştığım pencerelerin büyük çoğunluğu yalnızca belirli bir monitör çözünürlüğünde ve Windows özelliklerinde %100 ölçeklendirme değerinde normal olarak görüntüleniyordu. Ve 4K çözünürlükte ve %175 ölçeklendirmede (benim durumumda), kontroller okunamaz hale geldi veya birbiriyle çakıştı.

Bu arada, bu durum MetaEditor'de bulunan UI sınıflarının yardımıyla oluşturulan pencereler için de geçerli.

Pencerelerinizi oluştururken, Windows ayarlarında farklı ekran çözünürlüklerinde ve ölçeklendirme değerlerinde nasıl görüneceklerini her zaman kontrol ediyor musunuz?

 
E38 kontroller okunamaz hale geldi veya birbiriyle çakıştı.

Bu arada, bu durum MetaEditor paketinde bulunan UI sınıfları yardımıyla oluşturulan pencereler için de geçerlidir.

Pencerelerinizi oluştururken, Windows ayarlarında farklı ekran çözünürlüklerinde ve ölçeklendirme değerlerinde nasıl görüneceklerini her zaman kontrol ediyor musunuz?

Teşekkürler.
Bu kullanıcı arayüzünü geliştirdiğim dönemde 4K formatı yeni ve tazeydi, günümüzdeki kadar yaygın değildi ve böyle bir sorun yoktu. Daha doğrusu kimse gündeme getirmediği için 4K'nın maliyetlerinden habersizdim. Ancak bu sorunla karşılaşmış olsaydım bile bunu MQL düzeyinde çözemezdim. Büyük olasılıkla, MQ geliştiricileri uygun çözümü bulup dili ve terminali yükseltene kadar kullanıcıya standart monitörü kullanmasını tavsiye ederdim. Sonra da grafiklerini yükseltirdi.

Ama iş o noktaya gelmedi).

Eklendi:

Pencerelerin ve panellerin farklı ekran çözünürlüklerinde nasıl göründüğünü kontrol etme konusunda, kullanıcı arayüzümün birkaç kullanıcısı arasında herhangi bir şikayet ve yorum olmadığı için bu tür kontrolleri bilerek yapmadım. Belki sorunlar bulunabilirdi, ancak yine de - MQL düzeyinde neredeyse hiç çözülmediler.
 
Реter Konow #:
Teşekkürler.
Bu kullanıcı arayüzünün geliştirildiği dönemde 4K formatı yeni ve tazeydi, günümüzdeki kadar yaygın değildi ve bu sorun da yoktu. Daha doğrusu kimse gündeme getirmediği için 4K'nın maliyetlerinden habersizdim. Ancak bu sorunla karşılaşmış olsaydım bile bunu MQL düzeyinde çözemezdim. Büyük olasılıkla, MQ geliştiricileri uygun çözümü bulup dili ve terminali yükseltene kadar kullanıcıya standart monitörü kullanmasını tavsiye ederdim. Sonra da grafiklerini yükseltirdi.

Ama iş o noktaya gelmedi).

Eklendi:

Pencerelerin ve panellerin farklı ekran çözünürlüklerinde nasıl göründüğünü kontrol etme konusunda, kullanıcı arayüzümün birkaç kullanıcısı arasında herhangi bir şikayet ve yorum olmadığı için bu tür kontrolleri bilerek yapmadım. Belki sorunlar bulunabilirdi, ancak yine de - MQL düzeyinde neredeyse hiç çözülmediler.
Terminal özelliklerinde uzun bir süre için monitörün DPI'sı vardır ve yardımda grafik nesnelerin boyutunu hesaplama örneği vardır.
 
Artyom Trishkin #:
Terminal özelliklerinde uzun süredir monitörün DPI değeri var ve yardımda grafik nesnelerin boyutunu hesaplama örneği var.
Yani böyle bir sorunla karşılaşsaydım kolayca çözebilirdim. Ancak, daha önce de söylediğim gibi, bununla karşılaşmadım. Ortaya çıkan problemler karşısında çözüm aramayı henüz öğrenemedim ama çok çabalıyorum:))

Bu arada 4K probleminin çözüm örnekleri de yardımda var mı?
 
Реter Konow #:
4K problemini çözme örnekleri de yardımda var mı?

Hangi sorundan bahsediyoruz?

 
Artyom Trishkin #:

Ne tür bir sorundan bahsediyoruz?

44 numaralı gönderideki.

Bu arada, bahsettiğiniz yardımdaki çözümün ME'nin yerel UI kütüphanesinde uygulanmaması garip, ... yukarıdaki kişinin sözlerine bakılırsa.
 
Реter Konow #:
44 numaralı gönderideki.

Bu arada, bahsettiğiniz yardımdaki çözümün ME'nin yerel UI kütüphanesinde uygulanmaması garip, ... yukarıdaki kişinin sözlerine bakılırsa.

Burada(TERMINAL_SCREEN_DPI):

Ölçekleme faktörü hesaplamasına birörnek:

//--- создаём кнопку шириной 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;

Bu şekilde kullanıldığında, grafik kaynağı farklı çözünürlüklere sahip monitörlerde gözle aynı boyutta olacaktır. Aynı zamanda, kontrol öğelerinin boyutları (düğmeler, diyalog pencereleri, vb.) kişiselleştirme ayarlarına karşılık gelecektir.

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