名古屋Qt勉強会#19 に参加しましたpost

8月25日(土) に開催された Qt 勉強会 @ Nagoya #19 - connpass に参加しました。

そのまとめなどです。

成果

動的に追加したコンポーネントにC++側から値を設定する

たぶんこのままではちゃんと動かないけど、雰囲気それらしいメモ。

// .qml
    Component {
        id: hogeHoge
        Label {
            property variant hoge: null
            anchors.right: parent.right
            anchors.left: parent.left
            text: ""
            Component.onCompleted: {
                hoge.bind(this);
            }
        }
    }
            :
    hogeHoge.createObject(container, {
        hoge: hoge
    })

// .h
class Hoge : public QObject {
                  :
    Q_INVOKABLE void bind(QObject* object);
                  :
}
// .cpp
               :
    QQmlApplicationEngine engine;
    Hoge hoge;
    engine.rootContext()->setContextProperty("hoge", &hoge);
               :
void Hoge::bind(QObject* object)
{
    qDebug() << object; // QQuickLabel_QML_99(0xffffffffff00)

    // read from
    qDebug()  << "Property value:" << object->property("text").toString();
//or qDebug() << "Property value:" << QQmlProperty::read(object, "text").toString();

    // write to
    object->setProperty("text", "aaaa");
//or QQmlProperty::write(object, "text", aaaa);
}

Qt Documentation に一瞬表示されるアイコンとメッセージ

Qt の公式ドキュメントを表示すると上部に一瞬だけ表示されるやつ。

We bake cookies in your browser for a better experience. Using this site means that you consent. 訳:より良いエクスペリエンスのために、ブラウザでクッキーを焼きます。 このサイトを使用することはそれに同意することを意味します。

クッキーマン?

のメッセージとともに The Qt Company へのリンクがあるみたい。

進捗

今回は愚直に実装を進めた関係で新たな知見は少ない感じ。

  • signal用のヘルプ表示関連の実装
    • 表示用の専用QMLを実装
    • QMLの切り替え用のコードを実装
    • C++側にも実装を追加
  • signal受信時にどのように通知するか?
    • パターン1:スクロール&フラッシュ
      1. 該当signalにスクロール
      2. 該当signalがフラッシング
    • パターン2:通知&クリックでスクロール 採用!
      1. ウインドウ内に通知
      2. 通知をクリックすると該当のsignalにスクロール

成果

懇親会

タコさんウインナーとか、もぐもぐ♪

もぐもぐ

参考


   /   変更履歴  /   Permalink  /  このエントリーをはてなブックマークに追加 
 カテゴリ: ブログ  /   タグ: C++, Qt, 雑記, 勉強会, QtQuick