IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Quick Discussion :

[InputText] Signal textChanged


Sujet :

Qt Quick

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 59
    Points : 49
    Points
    49
    Par défaut [InputText] Signal textChanged
    Bonjour,

    Je débute en Qt/QML ( 5.7 ) et je cherche à faire un composant de saisie login/password un peu comme on peut trouver sur une appli de type skype sur mobile.

    C'est à dire qu'il y a un texte à l'intérieur grisé qui correspond au label ( ex : Entrez votre login ) , et lorsque le TextInput a le focus et qu'on tape le login , ce label disparait, il revient si on efface le tout. Ca serait simple à faire si le TextInput émettait un signal textChanged, mais il n'y a pas l'air d'avoir ca, ni dans les "classes" mères.

    J'aurai aimé savoir quelle est la bonne solution pour faire cela, faudrait-il que je passe par Qt C++ pour créer un composant spécifique avec le signal voulu ( ca me parait un peu lourd ) ou y-a-t-il une solution plus simple ?

    Voici le code QML de mon composant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    import QtQuick 2.7
     
    Rectangle
    {
        id: inputRect    
        color: "white"
        border.color : "darkgray"
        border.width : 1.2
        radius:1
        property string mytext
        property int myechoMode
     
        property int decalage
     
        height : 30
        width : parent.width - decalage
        x : decalage / 2
     
     
     
     
        TextInput {
            id: textInput
            width: parent.width - 6
     
            x : 3
            color: "#000000"
            anchors.verticalCenter: parent.verticalCenter
            anchors.horizontalCenter: parent.horizontalCenter
            font.pixelSize: 12
     
            echoMode : inputRect.myechoMode
     
     
        }
        Text{
            id : textlabel
            width: parent.width - 6
     
            anchors.verticalCenter: parent.verticalCenter
            anchors.horizontalCenter: parent.horizontalCenter
     
            x : 3
            color: "#808080"
            text: inputRect.mytext
     
     
     
        }
     
        MouseArea {
            anchors.fill: parent
            onClicked{
                textInput.focus = true
            }
        }
    }
    Je voudrais en gros que mon labeltext affiche rien si inputtext n'est pas vide, et affiche inputrect.mytext si inputtext est vide.

    Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 59
    Points : 49
    Points
    49
    Par défaut
    ok je suis allé trop vite, il suffit d'utiliser un textField et non un textInput, et fixer le texte avec placeholderText.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Man signal, man scanf => pas de manuel
    Par weed dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 17/05/2004, 16h31
  2. erreur ora-12801 : error signaled in parallel query server
    Par dngaya dans le forum Administration
    Réponses: 5
    Dernier message: 15/04/2004, 16h25
  3. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57
  4. Dxdiag me signale que j'ai 510M de ram
    Par Goetz dans le forum DirectX
    Réponses: 1
    Dernier message: 29/09/2003, 14h33
  5. Interception du signal SIGINT
    Par macleod dans le forum MFC
    Réponses: 2
    Dernier message: 01/07/2003, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo