Я пытаюсь кода контекстного меню аналогично одной Dropbox имеет:вводя в моду QSystemTrayIcon в QMenu
Я думал, что лучший способ сделать это, чтобы стиль QMenu прикрепленный к QSystemTrayIcon:
class canvas : public QMenu
{
Q_OBJECT
public:
canvas(QObject* parent = 0);
};
canvas::canvas(QObject* parent) : QMenu()
{
setStyleSheet("QMenu{background-color:#00ff00;}");
}
class tray_icon : public QSystemTrayIcon
{
Q_OBJECT
public:
tray_icon(canvas* a_canvas, QObject* parent = 0);
};
tray_icon::tray_icon(canvas* a_canvas, QObject* parent) : QSystemTrayIcon(parent)
{
setContextMenu(a_canvas);
}
Но по какой-то причине QMenu не реагирует на вызов setStyleSheet, и он остается неизменным.
У меня есть несколько вопросов:
- Что я делаю неправильно в этой ситуации (почему цвет фона не установлен в зеленый цвет).
- Является ли QMenu правильным инструментом для создания выпадающих списков (может быть, я должен использовать другой виджет). Как Dropbox сделал такое меню?
Спасибо!
Да ... Похоже, расширение QMenu - правильное направление для перехода. Здесь [1] у кого-то есть аналогичная проблема. Теперь вопрос: как выровнять QMenu .. -_- [1] http://stackoverflow.com/questions/8704668/how-to-put-pushbutton-inside-the-qmenu-or-qaction- control –
Ну, по крайней мере, глядя на предоставленную ссылку, кажется, что в этом сценарии человек по-прежнему не хотел настраивать макет и тип элементов меню, просто содержимое, которое, я думаю, выполнимо именно так. Пример Dropbox меняет все, даже внешнюю форму окна, поэтому вам нужно будет управлять на более высоком уровне, я думаю. Так вы можете принять мой ответ? –
Я действительно пытался заставить его работать, но в итоге сдался. Я переключился на Objective C для кода интерфейса. Я хотел реализовать это в Qt и вставить здесь, чтобы другие могли его увидеть. Принимая ваш ответ. –