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

Mouse area et fenêtre dialog



  • Bonjour je suis débutant dans le monde de la programmation, mon but est de créer une application de monitoring pour un capteur d'air. Je dois donc créer quelque chose qui permet d'informer le début de la campagne de mesure et la fin. J'ai donc utiliser le Qml Calendar. Mais cependant je n'arrive pas a associer mon code avec un mouse area je voudrais que lorsque je clic sur l'image je puisse ouvrir le pop up du calendrier ci joint mon code merci d'avance.

    Image {
        id: image
        x: 331
        y: 319
        width: 68
        height: 65
        source: "../icons8-calendar-2-48.png"
    
        MouseArea {
            id: mouseArea
            x: 0
            y: 0
            width: 68
            height: 65
            onClicked: {
    
        Dialog {
            id: dateDialog
            width : 400
            height : 350
            visible: true
            title: "Sélectionner une date"
            standardButtons: StandardButton.Ok | StandardButton.Cancel
    
            onAccepted: console.log("Date sélectionnée : ",Qt.formatDate(calendar.selectedDate, "dd/MM/yyyy"))
    
           Calendar {
                id: calendar
                width : 375
                height : 295
                minimumDate: new Date(2020, 0, 1)
                maximumDate: new Date(2025, 0, 1)
                onDoubleClicked: dateDialog.click(StandardButton.Ok)
                    }
            }
    
          }
    
    
        }   
    
      }


  • salut @ZZoulax et bienvenue
    ça serait une bonne idée d'apprendre les bases du QML en suivant par exemple ce book : https://qmlbook.github.io/

    tu as écrit

    onClicked: {
    
        Dialog {
            id: dateDialog
    ...
     }
    
    }
    

    mais ça marche pas du tout comme ça. Quand tu ouvre des accolades c'est pour écrire du code javascript. ex :

    onClicked: {
     dateDialog.open()
    }
    

    et le Dialog il faut le créer en dehors de ton bouton

    Button{
        onClicked : {d.open()}
     }
    
    Dialog{
       id:d
    }
    

Log in to reply