如何将 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 小部件?的主要内容,如果未能解决你的问题,请参考以下文章

将 QML(QQuickView) 添加到现有 UI

如何使用 Qt/C++ 小部件(不是 QML)从 Android 相机获取图像

netbeans:如何将小部件添加到 QT 变量

在 QML 中绘制简单的条形图

QWidget 中的 QML 小部件

如何在 Qt 小部件中以 PreserveAspectFit 的比例显示图像