Название: Контекстное меню в трее программы Отправлено: AndreyK от Июля 25, 2011, 18:39 Всем привет.У меня возникла проблема размещения контекстного меню в трее программы. Когда кликаешь правой кнопкой мыши по иконке в трее, то контекстное меню распологается не совсем так как надо.
См. рисунок ниже . (http://s2.ipicture.ru/uploads/20110725/Yf854kvf.png) Подскажите пожалуйста как разместить его вот так. См. рисунок ниже. (http://s2.ipicture.ru/uploads/20110725/dTn94ykR.png) Код: mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include "QSystemTrayIcon.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QSystemTrayIcon * Tray = new QSystemTrayIcon(this); Tray->setIcon(QIcon(":/Images/Aperture.ico")); Tray->show(); QMenu *Menu = new QMenu(this); Menu->addAction(QString::fromLocal8Bit("ффовыарфовралодфврфаафвыафывафва")); Menu->addAction(QString::fromLocal8Bit("фыовраофврыаорфралофр2345г2435")); Menu->addAction(QString::fromLocal8Bit("243523452435")); Menu->addAction(QString::fromLocal8Bit("79еврпар")); Menu->addAction(QString::fromLocal8Bit("ффовыар3456363афва")); Tray->setContextMenu(Menu); } MainWindow::~MainWindow() { delete ui; } Название: Re: Контекстное меню в трее программы Отправлено: LisandreL от Июля 25, 2011, 19:56 Наследуйтесь от QMenu, перегружайте setVisible (оно виртуальное) и вычисляйте и устанавливайте в нём нужную координату x, а затем вызывайте родительский setVisible.
Название: Re: Контекстное меню в трее программы Отправлено: sendevent от Июля 25, 2011, 20:23 Я, наверно, поведу себя в стиле "русских форумов, когда вместо ответа начинают рассказывать ...", но все же:
Насколько я помню, во-первых, один из менюшных execute параметром принимает координаты - можно использовать его, во-вторых, попап действительно можно подвинуть вручную куда хочется. Но! Не вижу ничего криминального в поведении по-умолчанию, а если учесть необходимость самостоятельного расчета геометрии для разных положений таскбара (плюс, возможно, для разных выпендриваний с декорациями под разными wm'ми) - на перфекционизм стоит забить. Не то что бы трудно/много ручной работы - просто правило Парето (20/80) как раз про такое. Название: Re: Контекстное меню в трее программы Отправлено: Пантер от Июля 25, 2011, 20:27 У меня в KDE меню всегда себя так ведет. Не вижу ничего криминального.
Название: Re: Контекстное меню в трее программы Отправлено: zenden от Июля 25, 2011, 21:22 В Windows 7 точно такое же поведение. Не ищите проблему там, где ее нет.
Название: Re: Контекстное меню в трее программы Отправлено: AndreyK от Июля 25, 2011, 21:42 Всё понятно, спасибо всем что направили на путь истинный.
|