2011-01-06 107 views
3

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

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

我很难明确表达我的问题,但问题基本上是“我如何对使用Qtcreator创建(图形)的qwtPlot小部件进行任何操作?”。我检查了一些教程,但在教程中他们手动添加了代码中的小部件,但我想使用Qt Creator(因为我的UI会相当复杂)。这整个Qt造物主是相当混乱...

回答

4

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

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

+0

所以基本上我创建了一个继承qwtPlot对象的类,所以我可以使用嵌入在我的mainwindow中的qwtPlot对象? – Dago 2011-01-06 18:57:13