BlinCT
Aug. 13, 2019, 9:01 p.m.

Смена значения переменно в QML

Всем привет.
Пытаюсь в qml сделать поулчение булевого значения из крестовой части.
То есть проверяю, и в ректангле просто выписываю значение и меняю его. Потмо снова нажимаю, и снвоа меняю.
Но чет не то делаю.

1
qml: setNewValue:  undefined
0

Может кто подскажет где я ошибку допускаю.

Window
{
    id: mainRoot

    property string value: textWorkerB_1.text

    Rectangle
    {
        id: rectangleWorkerB_1

        Text { id: textWorkerB_1; text: qsTr(""); anchors.centerIn: parent; font.capitalization: Font.AllLowercase }
    }
    Rectangle
    {
        id: rectangleWorkerB_2

        MouseArea
        {
            anchors.fill: parent;
            onClicked: {
                 textWorkerB_1.text = workerA.getboolValue = false ? mainRoot.value = "false" : mainRoot.value = "true";
                workerA.getboolValue = true ? workerA.setboolValue(false) : workerA.setboolValue(true)
            }
        }
    }
}

Ну а в крестовом коде там просто гет и сет на данную переменную.

4

Do you like it? Share on social networks!

4
Evgenii Legotckoi
  • Aug. 13, 2019, 9:11 p.m.
  • The answer was marked as a solution.

Привет.

Вот это вообще работает?

textWorkerB_1.text = workerA.getboolValue = false ? mainRoot.value = "false" : mainRoot.value = "true";

По-моему здесь чушь написана.

Не вижу места, где вызывается метод setNewValue, полагаю, что он является сеттером, но к чему он относится не ясно, он вообще существует в C++ части?

    Pavel K.
    • Aug. 14, 2019, 12:29 p.m.
    • (edited)

    почему бы вам просто не добавить плейс холдер в который будет приходить значени?

    import YourClass 1.0
    
    YourClassModel{
        id:classModel
    }
        ViewPlaceholder {
            id: viewHolder
            anchors.verticalCenter: content.verticalCenter
            enabled: true
            text: classModel.boolValue
        }
    
    main() {
     qmlRegisterType<YourClass>("YourClass", 1, 0, "YourClassModel");
     }
    
    YourClaas.h
    
    YourClass : public Object {
    Q_Object
    Q_Property(bool boolValue,READ boolValue WRITE setboolValue NOTIFY boolValueChanged)
    
    Public:
        constructor()
    
        getter() и setter() ;
    
    signals:
       void boolValueChanged();
    private:
       bool m_boolValue;
    }
    
    
    

    и посмотрите кое- что тут

      Pavel K.
      • Aug. 14, 2019, 12:31 p.m.

      будет текстом не тру фалс , а 1 или 0

        BlinCT
        • Aug. 14, 2019, 12:33 p.m.

        Ошибка найдена) недосмотрел.

          Comments

          Only authorized users can post comments.
          Please, Log in or Sign up
          • Last comments
          • AK
            April 24, 2025, 12:04 p.m.
            UPD: Переписал логику воспроизведения через стороннюю библиотеку BASS. Там выбрать можно
          • Evgenii Legotckoi
            April 16, 2025, 5:08 p.m.
            Благодарю за отзыв. И вам желаю всяческих успехов!
          • IscanderChe
            April 12, 2025, 5:12 p.m.
            Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
          • AK
            April 1, 2025, 11:41 a.m.
            Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
          • Evgenii Legotckoi
            March 9, 2025, 9:02 p.m.
            К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…