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 在他们的网站上解释了这个过程:

在您的应用程序中使用设计器 UI 文件

对于主窗口,其中大部分是为您自动生成的(在我的版本中,至少 ... 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;
}

如果使用多继承方式,可以直接访问成员。

于 2011-01-06T16:50:17.340 回答