Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Reducing bindings fail



  • I am trying to reduce the amount of property bindings on this small bit of code used as an example but I am running into a problem. For some reason, the text is not showing. Here is the code:

    import QtQuick 2.12
    import QtQuick.Controls 2.5
    import QtQuick.Window 2.0
    
    ApplicationWindow
    {
      id: root
      visible: true
      width: 640
      height: 480
      
      //  Rectangle
      //  {
      //      id: content
      //      anchors.centerIn: parent
      //      width: theText.width + 10
      //      height: theText.height + 10
      //      color: mouseArea.pressed ? "green" : "blue"
      //       Text
      //      {
      //          id: theText
      //          anchors.centerIn: parent
      //          text: mouseArea.pressed ? "Technologies" : "Jet"
      //      }
      //       MouseArea
      //      {
      //          id: mouseArea
      //          anchors.fill: parent
      //      }
      //  }
    
      Rectangle
      {
        id: content
        anchors.centerIn: parent
        width: theText.width + 10
        height: theText.height + 10
    
        Text
        {
          id: theText
          anchors.centerIn: parent
        }
        MouseArea
        {
          id: mouseArea
          anchors.fill: parent
          onPressedChanged:
          {
            if (pressed)
            {
              content.color = "blue";
              theText.text = "Jet";
            }
            else
            {
              content.color = "green";
              theText.text = "Technologies";
            }
          }
        }
      }
    }
    

    note that in the commented version everything works as expected. However, when I run the uncommented version the text doesn't show up unless I assign a value to theText's text property directly, why is that?



  • This post is deleted!

  • Qt Champions 2018

    For my curiosity , why do you want to do that?



  • Hi Rob,

    The problem is that you did not initialized your rectangle's color and text.
    At startup your rectangle is white with no text, when you click on the mouse area the text show up with a color.

    But as said GrecKo it seems strange to do that.


Log in to reply