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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Заголовок в контекстном меню.  (Прочитано 4257 раз)
diggaz
Гость
« : Апрель 24, 2010, 17:24 »

Есть необходимость сделать заголовок в вызываемом контекстном меню.
Сейчас я сделал это просто, создал дополнительный пункт в меню и изменил в нем шрифт.
Но все же хотелось бы еще поменять фон у этого пункта(заголовка).
Как, допустим, можно прикрутить стиль только для отдельного пункта в контекстном меню? Либо совсем по другому реализовать заголовок?

Как сейчас выглядит:



Код:
    menu = new QMenu(this);

    actReal = new QAction(tr("Real action"), this);
    actDummy = new QAction(tr("Title"), this);

    menu->addAction(actDummy);
    menu->addAction(actReal);

    connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slot_customContextMenuReq(QPoint)));

    QFont font;
    font.setPixelSize(10);
    font.setBold(true);

    actDummy->setFont(font);
    //actDummy->setDisabled(false);

Исходники во вложении
Записан
SABROG
Гость
« Ответ #1 : Апрель 24, 2010, 17:54 »

Похоже только через QWidgetAction. Как я ни пытался mandatory value установленное в QAction не срабатывает:

Код
CSS
QMenu::item[header="true"] {
    background: black;
}
 
Записан
diggaz
Гость
« Ответ #2 : Апрель 24, 2010, 19:37 »

Цитировать
Похоже только через QWidgetAction
А как конкретно? Еще не работал с этим классом.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Апрель 24, 2010, 19:48 »

QWidgetAction * action = new QWidgetAction;
action->setDefaultWidget(myHeader);
menu->addAction(action);

если не вру:)
я так добавлял видео в менюшки, было прикольно:)
Записан
diggaz
Гость
« Ответ #4 : Апрель 24, 2010, 20:05 »

Всем спасибо, разобрался.
Теперь выглядит так:



Исходники прилагаю.

Код:
    menu = new QMenu(this);

    actReal = new QAction(tr("Real action"), this);

    connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slot_customContextMenuReq(QPoint)));

    actWid = new QWidgetAction(menu);
    QLabel *label1 = new QLabel("Title");
    label1->setObjectName("contextMenuTitle");
    actWid->setDefaultWidget(label1);

    menu->addAction(actWid);
    menu->addAction(actReal);

    menu->setStyleSheet("QLabel#contextMenuTitle { background-color: blue; font: bold 10px; color: white; }");
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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