2011-01-06 54 views
3

我正在試圖製作一個使用Qt Creator和Qwt進行繪圖的Qt程序。我以前從未使用過Qt Creator。我創建了一個MainWindow並在那裏添加了一個Qwtplot小部件(對象名稱:qwtPlot)。當我編譯並運行它時,該部件會顯示在程序中。但是在(自動生成的)代碼中的任何地方都沒有提及qwtPlot對象,所以我認爲它是在編譯時從.ui xml文件(或其他)中添加的。使用Qt Creator(與Qwt),真正的基本東西

我的問題是,如何修改/更改qwtPlot對象?或者我應該在哪裏放置代碼?

我很難明確表達我的問題,但問題基本上是「我如何對使用Qtcreator創建(圖形)的qwtPlot小部件進行任何操作?」。我檢查了一些教程,但在教程中他們手動添加了代碼中的小部件,但我想使用Qt Creator(因爲我的UI會相當複雜)。這整個Qt造物主是相當混亂...

回答

4

一個典型的解決方案是使用多重繼承或包含UI組件作爲私人成員。 Qt的解釋在其網站上的過程:

Using a Designer UI File in Your Application

對於主窗口中,大部分是自動生成的你(我的版本,至少... 2.0.1)

您應該擁有(或創建)一個mainwindow.h文件,其中包含Ui::MainWindow類型的成員。

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

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

private: 
    Ui::MainWindow *ui; 
}; 

mainwindow.cpp應該正確初始化它,然後就可以通過私人ui成員得到自動生成的成員。

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

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) { 
    ui->setupUi(this); 
    ui->myControl->setProperty(...); 
} 

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

如果使用多繼承方法,則可以直接訪問成員。

+0

所以基本上我創建了一個繼承qwtPlot對象的類,所以我可以使用嵌入在我的mainwindow中的qwtPlot對象? – Dago 2011-01-06 18:57:13