Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Hort от Октябрь 28, 2008, 18:20



Название: Пару вопросов по GUI
Отправлено: Hort от Октябрь 28, 2008, 18:20
Дорабатывал пример из examples\dialogs\configdialog.
Хотел сделать, чтобы размер виджета автоматически высчитывался в зависимости от размеров внутренних элементов.
делаю это таким обоазом:
Код:
QSize tmpSize=menu->visualItemRect(testingButton).size();
...
menu->setFixedWidth(tmpSize.width()+2*(menuSpacing + QApplication::style()->pixelMetric(QStyle::PM_DefaultFrameWidth)));
menu->setMinimumHeight(3*(tmpSize.height()+menuSpacing)+menuSpacing+2*QApplication::style()->pixelMetric(QStyle::PM_DefaultFrameWidth));
но получается такая загвоздка - при классическом стиле Windows все считается нормально (промежутки вокруг надписи 13/13), но если поставить Windows XP стиль - гдето теряются 2 пикселя (промежутки вокруг надписи 14/12).

ЗЫ: короче говоря в стандартном стиле все по центру получается а в XP стиле смещено вправо


Название: Re: Как точно определить необходимый размер k
Отправлено: lit-uriy от Октябрь 28, 2008, 19:55
2 Hort, ты еще стили "пластик" и "чистый взгляд" попробуй, тоже поразному будут выглядеть, даже на стандартных виджетах.


Название: Re: Как точно определить необходимый размер k
Отправлено: Hort от Октябрь 28, 2008, 20:40
2 Hort, ты еще стили "пластик" и "чистый взгляд" попробуй, тоже поразному будут выглядеть, даже на стандартных виджетах.
Попробовал - работают нормально (13/13). Получается это скорей всего глюк или виндосовских тем, или их обработки в Qt. получается походу что толщина рамки определяется как 1 пиксель, а рисуется из расчета на 2 пикселя.


Название: Re: Пару вопросов по GUI
Отправлено: Hort от Октябрь 29, 2008, 09:48
Заметил вчера такой вот баг Cleanlooks стиля. внизу картинка - 1ым идет Cleanlooks, потом пластик и виндовс ХП. Ктонибуть с таким сталкивался? тлоли об этом знают?
ЗЫ иконка 24x24; Текст Arial, 16 px; Qt 4.4.0


Название: Re: Пару вопросов по GUI
Отправлено: lit-uriy от Октябрь 29, 2008, 10:03
2 Hort, я именно об этом и говорил, это еще не все отличия ;)