Russian Qt Forum
Май 18, 2012, 19:44
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
(Модератор:
Sergeich
) >
Можно ли встроить PushButton в QMenu/QAction?
Страниц: [
1
]
2
3
...
5
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Можно ли встроить PushButton в QMenu/QAction? (Прочитано 1369 раз)
liri2006
Новичок
Offline
Сообщений: 7
Можно ли встроить PushButton в QMenu/QAction?
«
:
Январь 04, 2012, 22:46 »
Сопсно сабж, нужно чтоб выглядело примерно так:
Записан
Kolobok
Бывалый
Offline
Сообщений: 480
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #1 :
Январь 05, 2012, 00:15 »
QWidgetAction
Записан
liri2006
Новичок
Offline
Сообщений: 7
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #2 :
Январь 05, 2012, 23:52 »
Поиграл с QWidgetAction, но получилось только нечто такое:
Вобще были надежды впихнуть кнопку в середину QMenu, но даже если и забить на те амбиции то в текущей реализации слегка напрягает рамка вокруг меню и место под иконку.
Вот код реализации:
Код:
class SpinBoxAction : public QWidgetAction {
public:
SpinBoxAction (const QString & title) :
QWidgetAction (NULL) {
QWidget* pWidget = new QWidget (NULL);
QHBoxLayout* pLayout = new QHBoxLayout();
pLabel = new QLabel(title);
pPushButton = new QPushButton("+");
pMenu = new QMenu();
pMenu->addMenu("");
pLayout->addWidget(pLabel);
pLayout->addWidget(pPushButton);
pLayout->addWidget(pMenu);
pWidget->setLayout(pLayout);
setDefaultWidget(pWidget);
}
}
private:
QMenu *pMenu;
QPushButton *pPushButton;
QLabel *pLabel;
};
Вызов:
Код:
SpinBoxAction * spinBoxAction = new SpinBoxAction(tr("Action Title"));
ui->menuOlolo->addAction(spinBoxAction);
Записан
andrew.k
phpBB Супер
Offline
Сообщений: 1176
*ерес - местный сумасшедший
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #3 :
Январь 06, 2012, 01:57 »
А что должен делать этот плюс? Мне как пользователю не понятно.
Записан
"Вообще он что должен делать мне неясно и вотому что можно сделать тоже не могу." (С) Верес
liri2006
Новичок
Offline
Сообщений: 7
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #4 :
Январь 06, 2012, 02:53 »
Ну например добавлять еще одит QAction в текущий QMenu, выводить дополнительные опции для текущего элемента и тд.
Записан
iroln
Частый гость
Online
Сообщений: 294
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #5 :
Январь 06, 2012, 10:42 »
Хотите сделать нечто подобное?
Записан
Авварон
Джедай : наставник для всех
Online
Сообщений: 1830
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #6 :
Январь 06, 2012, 11:42 »
Цитата: liri2006 от Январь 06, 2012, 02:53
добавлять еще одит QAction в текущий QMenu
Юзер вообще не должен заниматься настройкой содержимого меню; максимум - хоткеями.
Цитата: liri2006 от Январь 06, 2012, 02:53
выводить дополнительные опции для текущего элемента и тд.
Для этого придумали подменю
И да, ваша задача технически нереализуема на маке. И, думаю, на линуксе с их новомодными юнити.
Записан
liri2006
Новичок
Offline
Сообщений: 7
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #7 :
Январь 06, 2012, 11:49 »
Цитата: iroln от Январь 06, 2012, 10:42
Хотите сделать нечто подобное?
Да, только у менюшек с кнопками должны быть еще и подменю.
Цитата: Авварон от Январь 06, 2012, 11:42
Юзер вообще не должен заниматься настройкой содержимого меню; максимум - хоткеями.
Почему? А если представить что это меню представляет небольшое древо каталогов?
Записан
iroln
Частый гость
Online
Сообщений: 294
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #8 :
Январь 06, 2012, 11:55 »
Сомневаюсь, что это хорошая идея с точки зрения usability - так наворачивать меню. Меню вообще штука удобная только если оно одноуровневое. Если появляются подменю, пользоваться им становится неудобно. А если ещё добавить туда решения в виде кнопок, расширяющих функциональность этого же меню, изменяющих это меню, то вообще не представляю как этим можно будет пользоваться.
Записан
liri2006
Новичок
Offline
Сообщений: 7
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #9 :
Январь 06, 2012, 12:11 »
Скорей всего вы правы, придется реализовывать свою задачу по другому, но все же, для полноты картины, хотелось бы узнать как впихнуть хотя бы кнопки так, чтоб смотрелось нормально.
Записан
Igors
Джедай : наставник для всех
Online
Сообщений: 3416
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #10 :
Январь 06, 2012, 12:33 »
Есть такой приемчик:
- если пользователь "просто" кликает меню - появляются "обычные" айтемы
- если напр держит Option (Alt) и кликает - то некоторые айтемы заменены
Это просто в реализации, помогает избежать "раздувания" меню и довольно удобно для юзверя
Записан
Авварон
Джедай : наставник для всех
Online
Сообщений: 1830
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #11 :
Январь 06, 2012, 13:35 »
Цитата: Igors от Январь 06, 2012, 12:33
Есть такой приемчик:
- если пользователь "просто" кликает меню - появляются "обычные" айтемы
- если напр держит Option (Alt) и кликает - то некоторые айтемы заменены
Это просто в реализации, помогает избежать "раздувания" меню и довольно удобно для юзверя
И рекомендуется эпплом не использовать это.
Записан
BRE
Джедай : наставник для всех
Offline
Сообщений: 3231
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #12 :
Январь 06, 2012, 13:48 »
Цитата: Авварон от Январь 06, 2012, 13:35
И рекомендуется эпплом не использовать это.
потому что 99,9% пользователей не додумаются, что такое может быть.
Записан
Каждое препятствие – это возможность
.
Igors
Джедай : наставник для всех
Online
Сообщений: 3416
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #13 :
Январь 06, 2012, 14:25 »
Цитата: Авварон от Январь 06, 2012, 13:35
И рекомендуется эпплом не использовать это.
Прошу показать рекомендацию (просто интересно). Хотя впрочем зачем автору следовать собственным рекомендациям?
У того же apple я почему-то не вижу в меню Finder айтема "screen shot" - да, надо запомнить Command-Shift-4 и др. Это минус, но компенсируется удобством. Да что там скриншот - просто откройте меню File и понажимайте Ctl и/или Alt
Записан
Авварон
Джедай : наставник для всех
Online
Сообщений: 1830
Re: Можно ли встроить PushButton в QMenu/QAction?
«
Ответ #14 :
Январь 06, 2012, 14:31 »
Цитата: Igors от Январь 06, 2012, 14:25
Цитата: Авварон от Январь 06, 2012, 13:35
И рекомендуется эпплом не использовать это.
Прошу показать рекомендацию (просто интересно). Хотя впрочем зачем автору следовать собственным рекомендациям?
У того же apple я почему-то не вижу в меню Finder айтема "screen shot" - да, надо запомнить Command-Shift-4 и др. Это минус, но компенсируется удобством. Да что там скриншот - просто откройте меню File и понажимайте Ctl и/или Alt
Цитировать
Although you can enable dynamic menu items in a contextual or Dock menu, you should probably consider such items to be doubly hard for users to discover. As with app menus, make sure that the functionality of the contextual or Dock menu does not depend on the discovery of dynamic menu items.
Это про док, но тк я не следую тупо гайдлайнам, то, я считаю, разумно обобщить эти динамик меню айтемы на айтемы в любых меню. Их сложно обнаружить (надо пройтись по всем менюхам с альтом), посему в большинстве случаев их лучше вообще не реализовывать (правило 80/20)
Записан
Страниц: [
1
]
2
3
...
5
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
=> Архив
===> Программирование
=====> Python
===> Веб программирование
=====> PHP, PERL, CGI
Загружается...