3

プロットに Qt Creator と Qwt を使用して Qt プログラムを作成しようとしています。Qt Creator を使用したことがありません。MainWindow を作成し、そこに Qwtplot ウィジェットを追加しました (オブジェクト名: qwtPlot)。コンパイルして実行すると、プログラムにウィジェットが表示されます。しかし、(自動生成された) コードのどこにも qwtPlot オブジェクトについて言及されていないので、コンパイル時に .ui xml ファイル (または何か) から追加されていると思います。

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

質問を明確にするのに苦労していますが、質問は基本的に「Qtcreatorで(グラフィカルに)作成されたqwtPlotウィジェットで何かを行うにはどうすればよいですか?」です。. いくつかのチュートリアルを確認しましたが、チュートリアルではウィジェットをコードに手動で追加していますが、Qt Creator を使用したいと思います (UI がかなり複雑になるため)。このQt Creator全体がかなり混乱しています...

4

1 に答える 1

4

一般的な解決策は、多重継承を使用するか、UI コンポーネントをプライベート メンバーとして含めることです。Qt は Web サイトでプロセスを説明しています。

アプリケーションでデザイナー UI ファイルを使用する

メインウィンドウの場合、これのほとんどは自動生成されます(私のバージョンでは、少なくとも... 2.0.1)

mainwindow.htype のメンバーを含むファイルを用意(または作成) する必要があります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;
}

多重継承方式を使用すると、メンバーに直接アクセスできます。

于 2011-01-06T16:50:17.340 に答える