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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: +1 к багам в Qt  (Прочитано 4128 раз)
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« : Ноябрь 06, 2012, 08:45 »

Наткнулся тут на одну багу в Qt может кому то будет полезна, для когото может она давно уже и извесна. Этот баг я словил только под маком, под Windows он не наблюдается, так же и под linux вроде на него не натыкался. Связан баг с иконкой в трее и саб меню. Если мы добавляем пункты в саб меню в трей, то у нас сразу пропадает возможность сделать setEnable(false). Вот пример кода

Код:
    QMenu *trayMenu = new QMenu();
    QSystemTrayIcon *trayIcon = new QSystemTrayIcon;

    QAction *actionFirst = new QAction("First",trayIcon);
    QAction *actionSecond = new QAction("Second",trayIcon);
    actionSecond->setEnabled(false);

    QMenu *subMenu = new QMenu("Sub menu");

    QAction *actionSubFirst = new QAction("Sub first",subMenu);
    QAction *actionSubSecond = new QAction("Sub second",subMenu);
    actionSubSecond->setEnabled(false);

    subMenu->addAction(actionSubFirst);
    subMenu->addAction(actionSubSecond);

    trayMenu->addAction(actionFirst);
    trayMenu->addAction(actionSecond);
    trayMenu->addMenu(subMenu);

    trayIcon->setContextMenu(trayMenu);

    QPixmap pxm(16,16);
    pxm.fill(QColor(Qt::red));

    trayIcon->setIcon(QIcon(pxm));
    trayIcon->show();

в trayMenu один пукт стоит в дизайбл и все здорово ,но в subMenu пункт actionSubSecond всеравно включен Улыбающийся При этом setVisible отрабатывает хорошо.

Qt 4.8.1
Mac  OS X 10.7.4
Записан
Bepec
Гость
« Ответ #1 : Ноябрь 06, 2012, 10:20 »

Это не новость, что у них меню кривое. Данный баг так же отрабатывает, когда один пункт стоит в Main/Sub/tray меню. Ос и прочее у мну под ником написано Улыбающийся

Записан
UVV
Гость
« Ответ #2 : Август 27, 2014, 22:50 »

Это не новость, что у них меню кривое. Данный баг так же отрабатывает, когда один пункт стоит в Main/Sub/tray меню. Ос и прочее у мну под ником написано Улыбающийся



Этот баг до сих пор не исправлен?
Не могу найти его в bugtracker'e.
Записан
Bepec
Гость
« Ответ #3 : Август 28, 2014, 01:26 »

Не имею понятия. Для меня он несущественен и решается простым обходом вроде... Или чтото такое я помню Веселый Блин, голова дырявая.

Если очень нужно могу поднять исходники и посмотреть точнее.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Август 28, 2014, 06:57 »

Подтверждаю (Mac, Qt 4.7.4), причем для main bar все то же самое - disabled субменю не дизаблит свои айтемы

Да, а на Вындоуз не помню, может все норм - но это уже значения не имеет
Записан
UVV
Гость
« Ответ #5 : Август 28, 2014, 08:53 »

Не-не, вроде бы отбой, у меня ошибка скорее всего в другом месте. Хотя тоже какой-то артефакт замечен, у меня QAction находится в ToolBar'e и в QMenu. Так вот на тулбаре отрабатывает, а в меню - нет. Но повторюсь, думаю, что проблема всё-таки в моём коде.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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