Connect a complex signal from QML to Qt/de: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(Sub-categorize)
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
[[Category:snippets]]
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
{{LangSwitch}}
[[Category:Snippets::QML]]
[[Category:German]]
[[Category:German]]
'''Deutsch''' | [[Connect_a_complex_signal_from_QML_to_Qt|English]]


= Komplexes Signal von QML nach C++ senden (QtQuick 1) =
= Komplexes Signal von QML nach C++ senden (QtQuick 1) =
Line 17: Line 17:
  Q_OBJECT
  Q_OBJECT
public:
public:
  DeclarativeView(const QUrl & source) : QDeclarativeView(source)
  DeclarativeView(const QUrl & source) : QDeclarativeView(source)
  {}
  {}
  public slots:
  public slots:
Line 35: Line 35:


QDeclarativeItem '''item = qobject_cast<QDeclarativeItem'''>(view.rootObject());
QDeclarativeItem '''item = qobject_cast<QDeclarativeItem'''>(view.rootObject());
  QObject::connect(item, SIGNAL (viewClicked(QString , QString)), &amp;view, SLOT (testSlot(QString, QString)));
  QObject::connect(item, SIGNAL (viewClicked(QString , QString)), &view, SLOT (testSlot(QString, QString)));


view.resize(200,200);
view.resize(200,200);

Latest revision as of 12:31, 28 November 2016

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

Komplexes Signal von QML nach C++ senden (QtQuick 1)

Der Code-Schnipsel demonstriert, wie man unter QtQuick 1 ein komplexes Signal von QML aus zu einem in C++ implementierten Slot sendet.

main.cpp

#include <QtGui>
#include <QtDeclarative>

class DeclarativeView : public QDeclarativeView
{
 Q_OBJECT
public:
 DeclarativeView(const QUrl & source) : QDeclarativeView(source)
 {}
 public slots:
 void testSlot(QString string1, QString string2)
 {
 qDebug() << string1 << string2;
 }
};

#include "main.moc"
int main(int argc, char **argv)
{
 QString file = "main.qml";

QApplication app(argc, argv);
 DeclarativeView view(QUrl::fromLocalFile(file));

QDeclarativeItem '''item = qobject_cast<QDeclarativeItem'''>(view.rootObject());
 QObject::connect(item, SIGNAL (viewClicked(QString , QString)), &view, SLOT (testSlot(QString, QString)));

view.resize(200,200);
 view.show();
 return app.exec();
}

main.qml

import QtQuick 1.0

Item {
 width: 200; height: 300
 signal viewClicked(string first, string second)

MouseArea {
 anchors.fill: parent
 onClicked: viewClicked("first", "second")
 }
}