Russian Qt Forum
Декабрь 23, 2024, 05:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Кнопки (типа toolbutton) на Mac OS X  (Прочитано 6483 раз)
serkol
Гость
« : Ноябрь 14, 2010, 06:56 »

В Mac OS принято лепить кнопочки типа toolbutton вместе в одну полосу, без промежутков. Первая картинка - так выглядят QToolButton, слепленные вместе. Вторая картинка - так выглядят кнопочки во всех "родных" программах на маке.

Должно быть: первая кнопка с закругленными краями слева, последняя кнопка с закругленными краями справа, средние кнопки квадратные. Граница между кнопками - одна линия.

Как сделать такое в Qt? Моя прога еще и под винду, так что в идеале хотелось бы чтобы эти кнопки правильно выглядели на обоих осях...
Записан
pethead
Гость
« Ответ #1 : Ноябрь 14, 2010, 11:45 »

используйте стили
Записан
vlad-mal
Гость
« Ответ #2 : Ноябрь 14, 2010, 12:09 »

используйте стили

Неужели кнопки сразу прилипнут друг к дружке?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Ноябрь 14, 2010, 13:56 »

На маке это идет обычно 1м контролллом ака виджетом
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Ноябрь 14, 2010, 14:08 »

троли вроде говорили о поддержке родных стилей мака, что на деле это не так?
Записан

Юра.
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Ноябрь 14, 2010, 16:31 »

Это спец стиль для тулбарных кнопок, он да, не поддерживается
Записан
ernie
Гость
« Ответ #6 : Ноябрь 14, 2010, 16:50 »

http://www.slideshare.net/qtbynokia/how-to-make-your-qt-app-look-native

Там про segments buttons,вроде того что нужно вам
Записан
serkol
Гость
« Ответ #7 : Ноябрь 14, 2010, 16:59 »

Это спец стиль для тулбарных кнопок, он да, не поддерживается

А мог бы кто-нибудь восполнить этот пробел, написать такой спец стиль, по всем правилам Qt? У меня нет опыта в C++ и Qt, так что мне это не под силу, но я мог бы заплатить. Можно оформить через какой-нибудь вэб сайт, с предоплатой которая лежит на сайте до завершения работы. Потом я бы отдал это команде Qt чтобы у всех было.
Записан
serkol
Гость
« Ответ #8 : Ноябрь 14, 2010, 17:22 »

http://www.slideshare.net/qtbynokia/how-to-make-your-qt-app-look-native

Там про segments buttons,вроде того что нужно вам

Имеется ввиду так?

Код:
QToolButton[style=QMacStyle] { border-image: url(:/button_mac.png); } QToolButton[style=QWindowsVistaStyle] { border-image: url(:/button_vista.png); }

Это выглядит примерно как если просто нарисовать свои кнопки, или я ошибаюсь?

Я имел ввиду, можно ли сделать такой стиль, который сам все делал бы автоматически? Когда он на маке, он должен определить, где находится кнопка (крайняя слева, крайняя справа, или в середине), и изменить соответственно свой рисунок рамки.
Записан
ufna
Гость
« Ответ #9 : Ноябрь 14, 2010, 17:28 »

"На автомате" все равно делать не будет, т.к. понятие "с краю" для кнопок "изнутри" отсутствует в принципе

можно либо говорить крайним кнопкам - "ты слева, а ты справа", или средним "вы посерединке" - на языке стилей. Либо создать класс виджета, который будет этим заниматься, а в него "напихивались" бы кнопки, это можно.
Записан
serkol
Гость
« Ответ #10 : Ноябрь 14, 2010, 17:51 »

Я не знаю, что доступно стилям. Жалко если стиль не может определить, где кнопка.

Я думал так: класс стиля смотрит, в каком layout лежит кнопка, перебирает содержимое этого layout и определяет место данной кнопки. При этом он мог бы учитывать наличие spacer-элементов (промежутков), и то, какие кнопки на данный момент видимы, а какие сделаны невидимыми. А когда он на винде, то должен задавать что-то типа margin чтобы отделять кнопки друг от друга. Если это невозможно, жалко, сделаю что-нибудь другое, или свой layout или свою кнопку, но это не такое универсальное решение как стиль.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.133 секунд. Запросов: 23.