Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: romsuhov от Декабрь 21, 2010, 22:04



Название: Изменение текста пункта меню
Отправлено: romsuhov от Декабрь 21, 2010, 22:04
Есть контекстное трей-меню и его пункт actShowHide. При попытке поменять текст пункта во время исполнения в одной из функций, программа вылетает с предложением отправить отчёт и с кодом -1073741819.

Код:
QAction* actShowHide = new QAction("Hide",this);
connect(actShowHide,SIGNAL(triggered()),this,SLOT(slotShowHide()));

trayIconMenu = new QMenu(this);
trayIconMenu->addAction(actShowHide);

void SystemTray::slotShowHide()
 {
     if (qc->isVisible())
        actShowHide->setText("Hide");
    else
        actShowHide->setText("Show");

      qc->setVisible(!(qc->isVisible()));
 }


Название: Re: Изменение текста пункта меню
Отправлено: BRE от Декабрь 21, 2010, 22:17
В конструкторе находиться именно такая строка?
Код
C++ (Qt)
QAction* actShowHide = new QAction("Hide",this);
 

или такая?
Код
C++ (Qt)
actShowHide = new QAction("Hide",this);
 


Название: Re: Изменение текста пункта меню
Отправлено: romsuhov от Декабрь 21, 2010, 22:22
В конструкторе находиться именно такая строка?
Код
C++ (Qt)
QAction* actShowHide = new QAction("Hide",this);
 
Да.


Название: Re: Изменение текста пункта меню
Отправлено: BRE от Декабрь 21, 2010, 22:23
Да.
Тогда сделай как во втором варианте.


Название: Re: Изменение текста пункта меню
Отправлено: romsuhov от Декабрь 21, 2010, 22:27
Тогда сделай как во втором варианте.
Заработало, спасибо!