使用 Qt Creator(带有 Qwt),非常基本的东西

发布于 2024-10-10 20:20:15 字数 417 浏览 6 评论 0原文

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

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

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

I'm trying to make a Qt program using Qt Creator and Qwt for plotting. I've never used Qt Creator before. I've created a MainWindow and added a Qwtplot widget there (object name: qwtPlot). The widget shows up in the program when I compile and run it. But theres no mention of the qwtPlot object anywhere in the (autogenerated) code so I assume it is being added at compile time from the .ui xml file (or something).

My question is that... how do I modify/change the qwtPlot object? Or where should I place the code?

I'm having a hard time articulating my question but the question basically is "How do I do anything with the qwtPlot widget which is created (graphically) with Qtcreator?". I've checked some tutorials but in the tutorials they add the widgets manually in the code, but I'd like to use Qt Creator (because my UI will be fairly complicated). This whole Qt Creator is pretty confusing...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

地狱即天堂 2024-10-17 20:20:15

典型的解决方案是使用多重继承或将 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;
}

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

A typical solution is to use multiple inheritance or contain the UI component as a private member. Qt explains the process on their web site:

Using a Designer UI File in Your Application

For a main window, most of this is auto-generated for you (on my version, at least ... 2.0.1)

You should have (or create) a mainwindow.h file that contains a member of type Ui::MainWindow.

class MainWindow : public QMainWindow
{
  Q_OBJECT

public:
  explicit MainWindow(QWidget *parent = 0);
  ~MainWindow();

private:
  Ui::MainWindow *ui;
};

Your mainwindow.cpp should initialize it properly, and then you can get to the auto-generated members through the private ui member.

#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;
}

If you use the multiple-inheritance method, you can access the members directly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文