使用Qt Creator(带有Qwt),非常基础的内容

3
我正在尝试使用Qt Creator和Qwt进行绘图的Qt程序。我以前从未使用过Qt Creator。我创建了一个MainWindow并添加了一个Qwtplot小部件(对象名称:qwtPlot)。当我编译和运行程序时,小部件会显示在程序中。但是,在(自动生成的)代码中没有提到qwtPlot对象,因此我认为它是在编译时从.ui xml文件中添加的(或类似的方式)。
我的问题是...我该如何修改/更改qwtPlot对象?或者我应该把代码放在哪里?
我很难表达我的问题,但问题基本上是“我如何处理由Qtcreator(以图形方式)创建的qwtPlot小部件?”我查看了一些教程,但在教程中,他们手动将小部件添加到代码中,但我想使用Qt Creator(因为我的UI将非常复杂)。整个Qt Creator相当令人困惑...
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;
}

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


所以基本上我创建了一个继承 qwtPlot 对象的类,这样我就可以在我的主窗口中使用嵌入的 qwtPlot 对象了? - Dago
Qt 应该已经在您的项目中创建了一个名为 ui_mainwindow.h(或类似名称)的文件。这就是您要继承的内容。然后,您可以在您的类中访问 Ui::MainWindow 的成员,并根据需要进行操作。 - Dave Mateer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接