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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Удаление пунктов меню из menuBar главного окна  (Прочитано 2981 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Июнь 22, 2011, 17:04 »

Привет.
Добавляю в menuBar главного окна свои пункты меню так:
Код:
if(fmainMenu) //-- ссылка на menuBar() главного окна
    {
        fmainMenu->setUpdatesEnabled(false);
        if(!fconnMenu)
        {
            fconnMenu = new QMenu(trUtf8("Связь"));
            fconnMenu->addAction(trUtf8("Подключиться"),this,SIGNAL(connectToServer()));
            fconnMenu->addAction(trUtf8("Отключиться"),this,SIGNAL(disconnectFromServer()));
            fmainMenu->addMenu(fconnMenu);

        }

        if(!farchMenu)
        {
            farchMenu = new QMenu(trUtf8("Работа с архивом"));
            farchMenu->addAction(trUtf8("Реальное время"),this,SIGNAL(setRealtime()));
            for(ECList::iterator it=fecList->begin();it!=fecList->end();it++)
            {
                CEC * ec = *it;
                QAction * action = farchMenu->addAction(trUtf8("Просмотр архива ЭЦ%1").arg(QString::number(ec->ec_number)));
                action->setData(QVariant(ec->ec_number));
            }
        }
        fmainMenu->setUpdatesEnabled(true);
    }

у menuBar я не нашёл метода для удаления пунктов меню, только удаления QAction.
Сейчас удаляю так:
Код:
if(fmainMenu)
    {
        if(fconnMenu)
        {
            delete fconnMenu;
            fconnMenu = NULL;
        }
        if(farchMenu)
        {
            delete  farchMenu;
            farchMenu = NULL;
        }
    }
но в главном меню эти пункты остаются.
Как их убрать?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Июнь 22, 2011, 17:22 »

Перед удалением меню удаляй
Код
C++ (Qt)
delete fconnMenu->menuAction();
Записан

Qt 5.11/4.8.7 (X11/Win)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #2 : Июнь 22, 2011, 17:55 »

спасибо, работает!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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