使用 Qt Creator (with Qwt),非常基础的东西

Posted

技术标签:

【中文标题】使用 Qt Creator (with Qwt),非常基础的东西【英文标题】:Using Qt Creator (with Qwt), really basic stuff 【发布时间】:2011-01-06 15:59:14 【问题描述】:

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

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

我很难表达我的问题,但问题基本上是“我该如何处理使用 Qtcreator(以图形方式)创建的 qwtPlot 小部件?”。我检查了一些教程,但在教程中,他们在代码中手动添加了小部件,但我想使用 Qt Creator(因为我的 UI 会相当复杂)。整个 Qt Creator 非常混乱……

【问题讨论】:

【参考方案1】:

典型的解决方案是使用多重继承或包含 UI 组件作为私有成员。 Qt 在他们的网站上解释了这个过程:

Using a Designer UI File in Your Application

对于主窗口,大部分内容是为您自动生成的(在我的版本中,至少... 2.0.1)

您应该拥有(或创建)一个包含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;

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

【讨论】:

所以基本上我创建了一个继承 qwtPlot 对象的类,所以我可以使用嵌入在我的主窗口中的 qwtPlot 对象? Qt 应该在你的项目中创建了一个ui_mainwindow.h(或类似的东西)。 是你继承的。然后,您可以访问类中 Ui::MainWindow 的成员,并可以根据需要操作它们。

以上是关于使用 Qt Creator (with Qwt),非常基础的东西的主要内容,如果未能解决你的问题,请参考以下文章

QWT编译配置使用(Qt Creator)

在 Windows 7 上为 Qt Creator 安装 Qwt

无法在 Qt Creator 中加载 qwt_designer_plugin

QwtPolar 库错误 Qt Creator

QTCreate subdirs project with qt creator

QTCreate subdirs project with qt creator