ConvertDialogToPixels() разные значения для windows и Debian

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
User avatar
cutecode
I live to help wx-kind
I live to help wx-kind
Posts: 190
Joined: Fri Dec 09, 2016 7:28 am
Contact:

ConvertDialogToPixels() разные значения для windows и Debian

Postby cutecode » Thu Dec 13, 2018 9:52 am

У меня стоит Debian 9 и виртуалка windows 10
на обоих мониторах PPI = 96 и разрешимость 1920х1080
если запускаю этот код

Code: Select all

    wxPoint pt(100, 100);
    wxPoint pt2 = ConvertDialogToPixels(pt);


то для windows имею wxPoint(175, 188)
А для Debian имею wxPoint(200, 225)

почему такая разница? Как результат у меня на разных ОС разные размеры окон и контролов в них.
Как правильно создавать контролы с одинаковыми размерами на разных ОС для одинакового PPI и одинаковой разрешимости экрана?

Пока, на вскидку, единственный выход вижу это выбрать желаемый коэфициент для одной из ОС, а затем для других ОС умножать все размеры на этот коэфициент. Я на правильном пути? или есть еще какой то другой параметр (коэфициент), о котором я не знаю?

СПАСИБО
regards,
Alexander Saprykin
www.wxwidgets.ru

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 2835
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: ConvertDialogToPixels() разные значения для windows и Debian

Postby ONEEYEMAN » Tue Dec 18, 2018 4:44 pm

Dobrogo vremeni sutok,
Nichego udivitelnogo - eto 2 raznye operacionki.
Poetomu i rekomenduetsja ispolzovat sizery dlja raspologenija kontrolov...

Spasibo.

User avatar
cutecode
I live to help wx-kind
I live to help wx-kind
Posts: 190
Joined: Fri Dec 09, 2016 7:28 am
Contact:

Re: ConvertDialogToPixels() разные значения для windows и Debian

Postby cutecode » Thu Dec 20, 2018 10:18 am

Я хочу создать свой sizer, поэтому и спрашиваю
regards,
Alexander Saprykin
www.wxwidgets.ru

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 2835
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: ConvertDialogToPixels() разные значения для windows и Debian

Postby ONEEYEMAN » Thu Dec 20, 2018 3:47 pm

Dobrogo vremeni sutok,
A chto budet delat Vash sizer? I dlja chego on nugen?
Moget byt takoj sizer uge est?

Spasibo.

User avatar
cutecode
I live to help wx-kind
I live to help wx-kind
Posts: 190
Joined: Fri Dec 09, 2016 7:28 am
Contact:

Re: ConvertDialogToPixels() разные значения для windows и Debian

Postby cutecode » Thu Dec 20, 2018 4:13 pm

Привет,

я сделал свой редактор форм для моей программы, (без сайзеров).
И хочу чтоб все формы отображались одинаково на всех ОС.

Я уже решил свою задачу вычисляя коэффициент сжатия, который вычисляется как отношение текущего значения к стандартному

Code: Select all

double shrink_x = -1, shrink_y = -1;

void calc_shrink(wxWindow* wnd)
{
   wxPoint pt(10000, 10000);
   wxPoint pt2 = wnd->ConvertDialogToPixels(pt);

   shrink_x = 17500 / (double)pt2.x;
   shrink_y = 18750 / (double)pt2.y;
}

double get_shrink_x()
{
   return shrink_x;
}

double get_shrink_y()
{
   return shrink_y;
}


Сейчас на Линукс и WIndows все окошки одинакового размера
но не уверен что это правильно решение

Спасибо
regards,
Alexander Saprykin
www.wxwidgets.ru

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 2835
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: ConvertDialogToPixels() разные значения для windows и Debian

Postby ONEEYEMAN » Thu Dec 20, 2018 4:47 pm

Dobrogo vremeni sutok,
Konechno nepravilnoe.
Chto budet esli programma budet zapuskatsja pod KDE. Na drugom Linux? Chto budet esli izmenitsja monitor, pomenjaetsja driver dlja monitora i budet vozvrashatsja drugie znachenija?

Kross-platformennoe prilogenie ne dolgno zaviset ot parametrov monitora - ono ne dlgno znat ob etom.
DElja etogo v wxWidgets suschestvujut sizers, v GTK+ - boksy, a v Qt - svoj mehanism.

No dlja polzovatelja etih bibliotek razreshenie monitora i ego parametry - "chernyj jaschik".

Spasibo.


Return to “wxWidgets Development (Russian)”

Who is online

Users browsing this forum: No registered users and 0 guests