2012-04-14 29 views
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沒有在範圍內聲明。任何人?謝謝!

回答

1

tabWidget是不是你MainWindow類的成員,我猜它在你ui文件中定義的對象,所以嘗試:

ui->tabWidget->addTab(...); 
+0

你知道嗎,我只是想通了:)謝謝! – raze 2012-04-14 11:03:00