Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Firefox от Сентябрь 09, 2013, 10:37



Название: QMenu
Отправлено: Firefox от Сентябрь 09, 2013, 10:37
Здравствуйте. Подскажите, пожалуйста,как мне на меню верхнего уровня сделать действие. мне надо чтоб по нажатию на верхнюю надпись меню открывалась форма другая. mousePressEvent не срабатывает, пробовала с помощью него. заранее спасибо.


Название: Re: QMenu
Отправлено: GreatSnake от Сентябрь 09, 2013, 10:53
Что такое меню верхнего уровня и что такое верхняя надпись ???


Название: Re: QMenu
Отправлено: kambala от Сентябрь 09, 2013, 11:30
коннекться с menu->menuAction()


Название: Re: QMenu
Отправлено: Firefox от Сентябрь 09, 2013, 12:57
Меню верхнего уровня это то что обычно называется "Файл", "Правка", "Вид"......
сделала следующее но не заходит в слот все равно:
Код:
QAction *act_arhivAt=ui->ARHIV_AT->menuAction();
 connect(act_arhivAt,SIGNAL(triggered()),SLOT(slotArhivAT()));


void MainWindow::slotArhivAT()
{
    Arh_at->show();
}

private slots:
slotArhivATGS();



Название: Re: QMenu
Отправлено: GreatSnake от Сентябрь 09, 2013, 15:47
Меню верхнего уровня это то что обычно называется "Файл", "Правка", "Вид"......
Обычно это называется "menu bar" и получается через:
Код
C++ (Qt)
QMenuBar * QMainWindow::menuBar () const


Название: Re: QMenu
Отправлено: Firefox от Сентябрь 11, 2013, 10:04
Извините, но не понятно все равно. я создавала в креаторе меню и там это класс QMenu. и к нему я могу обратиться как ui->ARHIV_AT, но как подключить к нему действие или слот, который отрабатывает по клику на него не понятно. срабатывает только если в конекте сигнал прописать hovered(). остальные сигналы не срабатывают.
Код:
connect(ui->ARHIV_AT,SIGNAL(hovered()),....
но мне этот сигнал не нужен