gpt4 book ai didi

c++ - Qt 与 qwt 运行时错误 : QWidget: Must construct a QApplication before a QWidget

转载 作者:行者123 更新时间:2023-11-30 03:53:16 25 4
gpt4 key购买 nike

我正在尝试使用 qt 5.4.1(和 qwt 6.1.2)制作一个应用程序。这是我的环境:

  • Windows 7 x64
  • Visual Studio 2012
  • Qt5.4.1静态
  • qwt6.1.2

并且我已经成功地使用我的 Qt 静态库构建了 qwt。我创建了一个继承自 QwtPlot 的小部件类,并创建了一个包含该小部件对象的主窗口。然后我构建项目。但是,存在运行时错误:QWidget: Must construct a QApplication before a QWidget


这是我继承自 QwtPlot 的小部件类:

#pragma once

#include <QWT/qwt_plot.h>
#include <QWT/qwt_plot_curve.h>



class DrawWidget: public QwtPlot
{
public:
DrawWidget(QWidget *parent );
~DrawWidget(void);
};

DrawWidget::DrawWidget(QWidget *parent )
: QwtPlot( parent ),
carve(NULL)
{

}

下面是我的 mainWindow 类:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H


#include "DrawWidget.h"

#include <QtWidgets/QMainWindow>

class MainWindow : public QMainWindow
{
Q_OBJECT


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


private:
DrawWidget *drawWidget;


};

#endif // MAINWINDOW_H

  MainWindow::MainWindow(QWidget *parent)
:QMainWindow(parent)
{
QWidget *widget = new QWidget(this);
this->setCentralWidget(widget);
QHBoxLayout *mainLayout = new QHBoxLayout(widget);

drawWidget = new DrawWidget(widget);

mainLayout->addWidget(drawWidget);
centralWidget()->setLayout(mainLayout);

}

这是我的 main.cpp:

#include "mainwindow.h"
#include <QtWidgets/QApplication>
#include <QtPlugin>
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.resize(1000,600);
w.show();
return a.exec();
}

我在发布版本中构建了这个项目。有什么想法吗?谢谢!

最佳答案

几周前我遇到了同样的问题,我的问题是额外的库。确保您获得了用于调试构建的附加库 debug 和用于发布构建的 release 的构建。构建 Debug 版本时将 AdditionalLibraryDebug/bin 文件夹添加到 Path 环境变量,构建 Release 版本时将 AdditionalLibraryRelease/bin 文件夹添加到 Path 环境变量中(不是同时)

祝你好运 :) 我通过这种方式解决了我的问题。 :)

关于c++ - Qt 与 qwt 运行时错误 : QWidget: Must construct a QApplication before a QWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30185168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com