2011-01-06 25 views
3

私はプロットのためにQt CreatorとQwtを使ってQtプログラムを作ろうとしています。以前はQt Creatorを使ったことがありません。 MainWindowを作成し、そこにQwtplotウィジェットを追加しました(オブジェクト名:qwtPlot)。ウィジェットは、コンパイルして実行するときにプログラムに表示されます。しかし、(自動生成された)コード内の任意の場所にqwtPlotオブジェクトについて言及していないので、コンパイル時に.ui xmlファイル(または何か)から追加されていると仮定します。Qt Creatorを使う(Qwt付き)、本当に基本的なもの

私の質問は...どうすればqwtPlotオブジェクトを変更/変更できますか?コードをどこに置くべきですか?

私の質問を明確にするのは難しいですが、質問は基本的にはです。Qtcreatorで作成されたqwtPlotウィジェットではどうすればいいですか?。私はいくつかのチュートリアルをチェックしましたが、チュートリアルではコード内に手動でウィジェットを追加しますが、私はUIがかなり複雑になるためQt Creatorを使いたいと思います。このQt Creator全体はかなり混乱しています...

答えて

4

代表的な解決策は、複数の継承を使用するか、またはUIコンポーネントをプライベートメンバーとして含めることです。これのほとんどはあなたのための自動生成され、メインウィンドウについて

Using a Designer UI File in Your Application

(私のバージョンでは、少なくとも... 2.0.1)

:Qtは、自分のWebサイト上のプロセスを説明しますUi::MainWindowのメンバーを含むmainwindow.hファイルを作成(または作成)する必要があります。

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オブジェクトを継承するクラスを作成していますので、メインウィンドウに埋め込まれたqwtPlotオブジェクトを使用できますか? – Dago

+0

Qtはあなたのプロジェクトに 'ui_mainwindow.h '(またはそのようなもの)を作成しているはずです。 **それはあなたが継承しているものです**。その後、クラスのUi :: MainWindowのメンバーにアクセスし、必要に応じてそれらを操作できます。 –

+0

はい、これはまさに私が必要なものでした、ありがとう! – Dago