![]() |
|
![]() ![]() ![]() |
|
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
под виндой все нормально - в созданном окошке QMessageBox-а, если смотреть слева направо, сначала идет кнопка Yes, а потом NO... в программе под линукс (ubuntu 12.4) - кнопки идут наоборот - No, затем YES и никак это не поменять (ну только если надписи на них поменять).почему так происходит под линуксом и как это поправить? и второе - под виндой как поменять порядок кнопок (например сначала NO, а потом YES) - обмен их местами в коде выше ничего не дает... Это сообщение отредактировал(а) gordmiand - 11.2.2013, 20:32 |
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Порядок кнопок определяется стилем, который пытается учесть HIG платформы для которой он предназначен. Как поменять в QMessageBox не знаю, может добавляя по-одной через addButton. Пусть знающие люди напишут.
|
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
эхехе...что же так все сложно с этим QMessageBox? почему порядок кнопок не определять порядком их создания....и кто такой HIG? порядок добавления кнопок через addButton тоже не дает нужной последовательности кнопок....
|
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
HIG - это Human Interface Guidelines. Набор рекомендаций по созданию интерфейсов, взаимодействию программ с пользователем и вообще с системой и интеграцией в нее. Поэтому не вижу острых причин менять порядок кнопок - пользователям Ubuntu может быть привычнее именно тот, который Qt задает.
|
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
может пользователям убунту и привычнее такая Qt-шная последовательность кнопок, а мне надо сделать как во всех нормальных формах-запросах выполнения какого-либо действия - сначала (слева) кнопка "Да", а затем - "Нет"....видимо придется просто кнопкам надписи поменять и будет программно на кнопке с надписью "Да" выполняться код для кнопки "Нет" и наоборот - бред конечно, но что поделать...
подскажите тогда как поменять размер шрифта и цвет для надписи (box->setText("my text");) QMessageBox -а? |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
попробуй поиграться со стилями - QApplication::setStyle(style);
|
|||
|
||||
_GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 6 Всего: 7 |
Через мессадж бокс действительно никак - т.к. (Амп правильно сказал) он завязан на HIG (и стили с растановкой кнопок не помогут) Я бы посоветовал свой класс мессаджбокса определить (наследуешься от QDialog) и там кнопки расставлять по своему усмотрению. Тоже изврат, но ты и хочешь "странного" (отказаться от HIG-а) -------------------- Дорогу осилит идущий |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Порядок кнопок задаётся в QDialogButtonBoxPrivate::layoutPolicy, который устанавливается согласно QDialogButtonBox::style().
Так что установка стиля может помочь. |
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
тогда подскажите пример как задать стиль (и какой мне нужен?) для объекта QDialogButtonBox-a?
|
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Там вроде всего 4-5 вариантов. Причём Windows и Mac стилей в Linux'е нет. Трудно перебрать?
|
|||
|
||||
gordmiand |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
Задание windows-стиля мессаджбоксу не помогает в борьбе за нужную мне последовательность кнопок (Yes No) в убунту.
в конструкторе MainWindow задаю:
виндусовый стиль виджетов применяется — все нормально... далее
дебаг выдает style is... QWindowsStyle(0xa9b7b08, name = "windows") а если дебаг поставить после exec()-a: style is... QStyleSheetStyle(0x88baa28) или я не тот стиль и не тому задаю? если стиль надо задавать для объекта QDialogButtonBox-а, то как мне его "привязать" к объекту моего мессаджбокса? подскажите на примере... |
||||
|
|||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
"windows", "windowsxp", "macintosh" - всего этого в Linux нет. QApplication::setStyle("Windows"); какой-то стиль установит, но не "Windows". (Вернёт-то NULL, но реально какой-то стиль будет). Рекомендуется вызывать до вызова конструктора QApplication. остаются "motif", "cde", "plastique". Но установка стиля поменяет не только порядок кнопок, но и их внешний вид. Это сообщение отредактировал(а) math64 - 15.2.2013, 08:02 |
|||
|
||||
Jeka178RUS |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 3.9.2012 Репутация: нет Всего: нет |
Для тех кто в танке: это не Qt-шная последовательность, это системное предпочтение. Вы же не будете менять порядок кнопок "свернуть/развернуть/закрыть" и их положение в Mac или Gnome? |
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
Jeka178RUS: пусть это лишь и предпочтение...а мне надо принудительно задать нужный мне порядок кнопок для убунты...вопрос в том как это сделать, например, как говорят, с помощью задания стиля мессаджбоксу...
параллельно с этим возник другой вопрос - как поменять размер мессаджбокса? его методы setGeometry, setFixedSize и т.п. не помогают - вроде как размер мессаджбокса автоматом подгоняется под размеры его элементов (надписи, кнопок)... Это сообщение отредактировал(а) gordmiand - 15.2.2013, 20:50 |
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Зачем вообще мессаджбокс, если ты его хочешь перелопатить вдоль и поперек - изменить порядок, шрифты, размеры? Как написали выше, отнаследуйся от QDialog и сделай что тебе нужно
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |