如何将 Switch Qml 添加到 qt 小部件?
Posted
技术标签:
【中文标题】如何将 Switch Qml 添加到 qt 小部件?【英文标题】:How to add Switch Qml to qt widgets? 【发布时间】: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 您应该根据错误信息找到解决方案。 ***.com/questions/9928238/… 【参考方案1】:要使用QQuickWidget
,您必须添加模块quickwidgets
,将以下内容添加到.pro:
QT += quickwidgets
也不要忘记包含标题:
#include <QQuickWidget>
如果您在 Windows 中,则必须使用 windowdeployqt 来获取执行应用程序所需的所有 dll,更多信息请访问以下链接:
http://doc.qt.io/qt-5/windows-deployment.html【讨论】:
已添加但不知何故在 qml 我无法导入 QtQuick.Controls 。它提示我添加 QML_IMPORT_PATH @Rubina 你的 Qt 版本是什么? 我使用的是 qt 5.9.4 @Rubina 重新安装你的 Qt,肯定没有正确建立该属性。 仍然出现错误 File not found unresolved externals error 我在不同的电脑上尝试时遇到的错误以上是关于如何将 Switch Qml 添加到 qt 小部件?的主要内容,如果未能解决你的问题,请参考以下文章