Qt示例记事本程序不显示任何控件

时间:2012-09-16 06:45:30

标签: c++ qt compilation

我正在关注QtSDK中列出的Qt示例,标题为“使用Qt进行编程”。我的问题是该程序不显示任何对象。

我的main.cpp看起来像这样:

#include <QtGui>

#include <notepad.h>

int main(int argv, char **args)  {
    QApplication app(argv, args);

    QVBoxLayout layout;

    Notepad notepad();

    QWidget window;
    window.setLayout(&layout);

    window.show();

    return app.exec();
}

'notepad.h'文件:

#ifndef NOTEPAD_H
#define NOTEPAD_H

#include <QtGui>

class Notepad : public QMainWindow  {
    Q_OBJECT

    public:
        Notepad();

    private slots:
        void open();
        void save();
        void quit();

    private:
        QTextEdit *text_edit;

        QAction *open_action;
        QAction *save_action;
        QAction *exit_action;

        QMenu *file_menu;
};

#endif // NOTEPAD_H

'notepad.cpp'文件:

#include "notepad.h"

Notepad::Notepad()  {
    open_action = new QAction(tr("&Open"), this);
    save_action = new QAction(tr("&Save"), this);
    exit_action = new QAction(tr("&Exit"), this);

    connect(open_action, SIGNAL(triggered()), this, SLOT(open()));
    connect(save_action, SIGNAL(triggered()), this, SLOT(save()));
    connect(exit_action, SIGNAL(triggered()), qApp, SLOT(quit()));

    file_menu = menuBar()->addMenu(tr("&File"));
    file_menu->addAction(open_action);
    file_menu->addAction(save_action);
    file_menu->addSeparator();
    file_menu->addAction(exit_action);

    text_edit = new QTextEdit;
    setCentralWidget(text_edit);

    setWindowTitle(tr("Notepad"));
}

void Notepad::open()  {
    ...
}

void Notepad::save()  {
    ...
}

void Notepad::quit()  {
}

非常感谢任何解决此事的帮助。

修改

我原来的问题问我为什么在没有实现“退出”功能时出现编译时错误,如果你想知道:)。

0 个答案:

没有答案