2012-04-14 2 views
0

나는 간단한 편집기 인 Qt와 C++을 쓰고있다. 탭이있어서 새 문서를 만든 후 새 탭에서 열려고합니다. 내 코드 :파일 뒤에 새로운 탭 추가 -> new

// 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

tabWidgetMainWindow 클래스의 멤버가 아닌 그것의 당신이 당신의 ui 파일에 정의 된 객체, 그래서 시도 :

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

당신은 그냥 :) 감사를 알아 낸 것, 알아! – raze

관련 문제