0

私はQtとC++で簡単なエディターを書いています。タブが欲しいので、新しいドキュメントを作成した後、これを新しいタブで開きます。私のコード:

// mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setWindowTitle("emacs");
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_actionExit_triggered()
{
    qApp->exit(0);
}

void MainWindow::on_actionNew_triggered()
{
    // what to write here?
}


// main.cpp

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}


// mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_actionExit_triggered();
    void on_actionNew_triggered();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

プログラムを終了するアクションを作成することに成功しました。しかし、私がこのようなことをしようとするとtabWidget->addTab(new QWidget(),"new tab");、tabWidgetがスコープで宣言されていないという苦情があります。誰か?ありがとう!

4

1 に答える 1

1

tabWidgetはクラスのメンバーではありません。ファイルでMainWindow定義したオブジェクトだと思いuiますので、次のことを試してください。

ui->tabWidget->addTab(...);
于 2012-04-14T10:59:25.283 に答える