2013-04-03 27 views
1

如何將第一個參數傳遞給QMainWindowQMainWindow參數

我希望能夠將多個不同的參數傳遞給QMainWindow。我的問題是,即使在修改構造函數以允許傳遞第二個/第三個/第四個參數之後,我仍然找不到實例化QMainWindow的方法。我不知道如何傳遞第一個參數(與QWidget *parent = 0部分)。

例如,如果我想傳遞一個整數給我的QMainWindow來實例化它,我會輸入:MainWindow(what_goes_here?, myInt)

的main.cpp

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

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: 
    Ui::MainWindow *ui; 
}; 

#endif // MAINWINDOW_H 

回答

4

下面是代碼:

explicit MainWindow(int a,QWidget *parent = 0); 

MainWindow::MainWindow(int a,QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    qDebug()<<a; 
    ui->setupUi(this); 
} 

MainWindow w(9); 
    w.show(); 

幫助你嗎?

+0

編譯,所以我認爲它的工作原理。謝謝。我猜這個技巧總是讓QWidget指針成爲最後一個參數。 – nairware

+1

這是因爲如果您定義了默認參數,則必須在任何必需參數之後。此鏈接顯示了一些關於它的更多信息:http://msdn.microsoft.com/en-us/library/91563f79(v=vs.80).aspx – phyatt