我正在尝试使用 Qt Creator 和 Qwt 制作 Qt 程序进行绘图。我以前从未使用过 Qt Creator。我创建了一个 MainWindow 并在那里添加了一个 Qwtplot 小部件(对象名称:qwtPlot)。当我编译和运行它时,小部件会显示在程序中。但是在(自动生成的)代码中的任何地方都没有提到 qwtPlot 对象,所以我假设它是在编译时从 .ui xml 文件(或其他东西)中添加的。

我的问题是...如何修改/更改 qwtPlot 对象?或者我应该在哪里放置代码?

我很难阐明我的问题,但问题基本上是“我如何使用 Qtcreator 创建(以图形方式)的 qwtPlot 小部件做任何事情?”。我检查了一些教程,但在教程中他们在代码中手动添加了小部件,但我想使用 Qt Creator(因为我的 UI 会相当复杂)。整个 Qt Creator 非常令人困惑......

最佳答案

典型的解决方案是使用多重继承或包含 UI 组件作为私有(private)成员。 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 应该正确初始化它,然后您可以通过私有(private) 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;
}

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

关于qt - 使用 Qt Creator(使用 Qwt),非常基础的东西,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4616854/

10-11 23:02
查看更多