Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyambung Isyarat C ke Slot QML dengan Parameter QString?

Bagaimana untuk Menyambung Isyarat C ke Slot QML dengan Parameter QString?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 02:53:29445semak imbas

How to Connect C   Signals to QML Slots with QString Parameters?

Menyambungkan Isyarat C ke Slot QML

Isu:

Apabila cuba menghantar QString parameter daripada isyarat C ke slot QML, ralat berlaku menyatakan, "Tiada slot sedemikian QDeclarativeRectangle_QML_2::updateViewWithItem(QString)."

Penyelesaian:

Menggunakan Sambungan

Untuk menyelesaikan isu ini, sambungan hendaklah digunakan dan bukannya sambungan slot terus.

  1. Dedahkan Objek C kepada QML:
    Tambahkan objek C (myObj) pada sifat konteks QML menggunakan setContextProperty() dalam kod C utama.

    <code class="cpp">qmlVectorForm->rootContext()->setContextProperty("YourObject", myOb);</code>
  2. Tentukan Isyarat:
    Dalam C , takrifkan isyarat sebagai:

    <code class="cpp">finishedGatheringDataForItem(QString signalString);</code>
  3. Tambah Sambungan dalam QML:

    Dalam fail QML, tambah sambungan kepada objek terdedah:

    <code class="qml">Connections {
        target: YourObject
        onFinishedGatheringDataForItem: {
            qmlString = signalString
        }
    }</code>

Dengan menggunakan sambungan, slot QML boleh menerima parameter QString dengan betul tanpa ralat sebelumnya.

Atas ialah kandungan terperinci Bagaimana untuk Menyambung Isyarat C ke Slot QML dengan Parameter QString?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn