이 예제는 signal slot을 활용하여 QML에서 button 클릭 시 qDebug로 msg문구를 출력하는 예제입니다.
signal qmlSignal(string msg)
Button {
id: add
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("add")
onClicked: qmlSignal(text)
}
코드 : https://pastebin.com/HXug1VQ0
// main cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include "myclass.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
QObject *item = engine.rootObjects().first();
MyClass myClass;
QObject::connect(item, SIGNAL(qmlSignal(QString)),
&myClass, SLOT(cppSlot(QString)));
return app.exec();
}
코드 : https://pastebin.com/wcQJ1GeK
#ifndef MYCLASS_H
#define MYCLASS_H
#include <QObject>
#include <QDebug>
class MyClass : public QObject
{
Q_OBJECT
public slots:
void cppSlot(const QString &msg) {
qDebug() << "Called the C++ slot with message:" << msg;
}
};
#endif // MYCLASS_H
코드 : https://pastebin.com/b9nndCYt
#include "myclass.h"
MyClass::MyClass(QObject *parent) : QObject(parent)
{
}
<RCC>
<qresource prefix="/">
<file>main.qml</file>
</qresource>
</RCC>
코드 : https://pastebin.com/iCuM9YdD
TEMPLATE = app
QT += qml quick
CONFIG += c++11
SOURCES += main.cpp
RESOURCES += qml.qrc
# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =
HEADERS += \
myclass.h
[C++ QT QML] Linux Ubuntu에서 Makefile 만들기 버전[2](Windows/Ubuntu) (0) | 2021.06.14 |
---|---|
[C++ QT QML] Visual Studio Code에서 Makefile 만들기 버전[1](Windows/Ubuntu) (0) | 2021.06.14 |
[QT QML] QML로 버튼 클릭시 Dialog 창 구현하기 (0) | 2021.06.11 |
[C++ QT QML] QML 버튼, 시간 표시 등의 기능을 C++에 연동 (0) | 2021.06.10 |
[PyQt5 QT QML] QtQuick 활용하여 Image 불러오기 (0) | 2021.06.09 |