【问题标题】:How to add Switch Qml to qt widgets?如何将 Switch Qml 添加到 qt 小部件?
【发布时间】:2018-04-06 01:54:20
【问题描述】:

我有一个 qml 文件 ToggleSwitch.qml,我想将它导入到我的小部件中。基本上我想将 qml 与小部件集成

ToggleSwitch.qml

Switch  
{  
    checked:true  
} 

在Mainwindow.cpp 我想做这样的事情

主窗口.cpp

QQuickWidget *quickWidget = new QQuickWidget;   
quickWidget->setSource(QUrl("qrc:/Resources/ToggleSwitch.qml"));  
QVBoxLayout *vBox = new QVBoxLayout;  
vBox->addWidget(quickWidget); 

我尝试了上面的代码,但它不起作用。它抛出错误未解析的外部符号

【问题讨论】:

  • 错误 Mainwindow.obj : 错误 LNK2019: 无法解析的外部符号 "_declspec(dllimport) public: virtual __cdecl QQuickWidget::~QQuickWidget(void)" (__imp??1QQuickWidget@@UEAA@XZ) 在函数“public: virtual void * __cdecl QQuickWidget::`标量删除析构函数'(unsigned int)”中引用(??_GQQuickWidget@@UEAAPEAXI@Z)
  • .qml 在资源文件夹中
  • QT += core gui qml quick greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = Sample TEMPLATE = app DEFINES += QT_DEPRECATED_WARNINGS #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 SOURCES += \ main.cpp \ mainwindow.cpp HEADERS += \ mainwindow.h FORMS += \ mainwindow.ui RESOURCES += \ resources.qrc
  • 您应该根据错误信息找到解决方案。 stackoverflow.com/questions/9928238/…

标签: c++ qt qml qt5 qquickwidget


【解决方案1】:

要使用QQuickWidget,您必须添加模块quickwidgets,将以下内容添加到.pro:

QT += quickwidgets

也不要忘记包含标题:

#include <QQuickWidget>

如果您在 Windows 中,则必须使用 windowdeployqt 来获取执行应用程序所需的所有 dll,更多信息请访问以下链接:

【讨论】:

  • 已添加但不知何故在 qml 我无法导入 QtQuick.Controls 。它提示我添加 QML_IMPORT_PATH
  • @Rubina 你的 Qt 版本是什么?
  • 我使用的是 qt 5.9.4
  • @Rubina 重新安装你的 Qt,肯定没有正确建立该属性。
  • 仍然出现错误 File not found unresolved externals error 我在不同的电脑上尝试时遇到的错误
猜你喜欢
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-10
  • 1970-01-01
  • 2020-05-06
  • 2014-11-29
相关资源
最近更新 更多