Элементы строки меню: Объекты действия. Чтобы что-то сделать, когда они были нажаты, вам нужно поймать сигнал triggered()
от действия. Подробнее о сигналах и слотах here.
Для этого вам необходимо объявить новый слот в вашем классе MainWindow. Qt также поддерживает это автоматически, без необходимости ничего подключать, но я предпочитаю делать это сам. Если вам это не интересно, просто пропустите эту часть.
Во-первых, мы объявляем новый слот в классе окна:
Затем, в конструкторе, вам необходимо подключить сработавшего сигнал к новой слот:
connect(ui.actionObject, SIGNAL(triggered()), this, SLOT(clickMenuButton()));
Первый Аргумент - это объект, который содержит сигнал, который мы будем слушать (кнопка меню). Второй - это имя сигнала. Третий - это объект, в котором находится принимающий слот (в данном случае - наше окно). Четвертый - это слот.
И только так, clickMenuButton()
будет вызываться всякий раз, когда нажимается действие.
Как я уже говорил, Qt может также automatically connect signals to slots. Недостатком здесь является то, что вы не можете изменить имя слота, но вам также не нужно его подключать.
Qt Creator поддерживает создание слотов для виджетов: в случае действия вашего меню вы должны обратиться к разработчику формы, и вы должны увидеть список действий в вашей форме (если вы этого не сделаете, найдите Редактор действий). Щелкните правой кнопкой мыши действие, которое вы хотите, и нажмите Перейти к слоту .... Там, дважды щелкните triggered()
.
Qt Creator откроет новый слот в редакторе кода, и вы сможете делать все, что хотите!
Большое вам спасибо, это было прекрасно! – 2010-01-31 13:19:03