메인 윈도우에서 하위 메뉴를 클릭하면 qDebug()와 같은 간단한 명령을 구현하고 싶습니다. Qt 5 IDE (...\Qt\Qt5.2.0\5.2.0\msvc2010\examples\widgets\mainwindows\menus
)와 함께 제공되는 샘플 프로그램을 언급하고 있었고이를 사용하여 코드를 생성 할 수있었습니다. 컴파일 시간이나 런타임 오류가 발생하지 않습니다.Qt의 qAction 하위 메뉴 사용 방법
디자인 모드를 사용하여 mainwindow.ui를 만들었습니다. 여기에는 actionInterval이라는 QAction 클래스의 객체가 있습니다.
하지만 아무 것도 나타나지 않고 void interval()에서 명령을 구현할 수 없습니다. 나는 제대로 연결되지 않은 것 같아요. 내가 여기서 무엇을 놓치고 있니? 제발 조언.
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
void createActions();
private slots:
void interval();
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
createActions();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::createActions()
{
ui->actionInterval = new QAction(tr("&Interval"), this);
ui->actionInterval->setStatusTip(tr("Set the interval for capturing delta & reference images"));
connect(ui->actionInterval, SIGNAL(triggered()), this, SLOT(interval()));
}
void MainWindow::interval()
{
qDebug()<<"inside interval qdialog";
}
MAIN.CPP
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
'ui-> actionInterval' 액션이 메뉴에없는 것으로 의심됩니다. – vahancho