QListWidet et QLineEdit

Vous voulez de l'aide ? Postez ici :)
Post Reply
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

QListWidet et QLineEdit

Post by Sergent-Quentin »

Bonjour,

J'ai quelques petites questions :

Qt ListWidget

J'ai créer une fenêtre à positionnement absolu, contenant 2 QListWidget, des boutons et un champ, voici un screen et son code pour le visualiser.
Liste.png
Liste.png (5.55 KiB) Viewed 1627 times

Code: Select all

var Fenetre = new QDialog();
Fenetre.setWindowTitle("Menu");
Fenetre.setFixedSize(500, 300);

var Liste_Verte = new QListWidget(Fenetre);
Liste_Verte.addItem("Samsung");
Liste_Verte.addItem("Iphone");
Liste_Verte.addItem("Nokia");
Liste_Verte.setGeometry(50, 100, 150, 100);

var Liste_Rouge = new QListWidget(Fenetre);
Liste_Rouge.addItem("Halo 1");
Liste_Rouge.addItem("Halo 2");
Liste_Rouge.setGeometry(300, 100, 150, 100);

var Verte = new QLabel("Liste verte", Fenetre);
Verte.move(95, 80);
var Rouge = new QLabel("Liste rouge", Fenetre);
Rouge.move(345, 80);
var Droite = new QPushButton(">>", Fenetre);
Droite.move(215, 125);
var Gauche = new QPushButton("<<", Fenetre);
Gauche.move(215, 150);
var Up = new QPushButton("Monter", Fenetre);
Up.move(50, 220);
var Down = new QPushButton("Descendre", Fenetre);
Down.move(125, 220);
var Champ = new QLineEdit(Fenetre);
Champ.move(185, 25);
var Ajout = new QPushButton("Ajouter", Fenetre);
Ajout.move(215, 50);
var Delete = new QPushButton("Supprimer", Fenetre);
Delete.move(87.5, 245);


Ajout.clicked.connect(function() {
Liste_Verte.addItem(Champ.text);
Champ.clear();
});

Gauche.clicked.connect(function() {
if (Liste_Rouge.currentRow<0) {
Console.print("Aucun élément selectionné");
}
else if (Liste_Rouge.count>0) {
Liste_Verte.addItem(Liste_Rouge.currentItem().text());
Liste_Rouge.takeItem(Liste_Rouge.currentRow);
}
});

Droite.clicked.connect(function() {
if (Liste_Verte.currentRow<0) {
Console.print("Aucun élément selectionné");
}
else if (Liste_Verte.count>0) {
Liste_Rouge.addItem(Liste_Verte.currentItem().text());
Liste_Verte.takeItem(Liste_Verte.currentRow);
}
});

Up.clicked.connect(function() {
var pos = Liste_Verte.currentRow;
if(pos == 0) return;
Liste_Verte.insertItem(pos - 1, Liste_Verte.currentItem().text());
Liste_Verte.takeItem(pos + 1);
Liste_Verte.currentRow = pos - 1;
});

Down.clicked.connect(function() {
var pos = Liste_Verte.currentRow;
if(pos >= Liste_Verte.count - 1) return;
Liste_Verte.insertItem(pos + 2, Liste_Verte.currentItem().text());
Liste_Verte.takeItem(pos);
Liste_Verte.currentRow = pos + 1;
});

Delete.clicked.connect(function() {
if (Liste_Verte.currentRow<0) {
Console.print("Aucun élément selectionné");
}
else {
Console.print(Liste_Verte.currentItem().text()+" est supprimé");
Liste_Verte.takeItem(Liste_Verte.currentRow);
Console.print("Il reste "+Liste_Verte.count+ " items");
}
});

Fenetre.exec();
Voici les choses que je n'arrive pas à faire (les choses résolus sont ajoutées a code) :

- Supprimer un item sélectionné [Résolu]
- Déplacer un item sélectionné dans la liste de droite/gauche [Résolu]
- Monter/Descendre un item [Résolu]
- Éditer un item sélectionné [Non résolu] (bug d'actiona)
- Focus le bouton "Ajouter" lorsque j'écris dans le champ [Non résolu]
- Sélectionner plusieurs items afin de les déplacer à droite/gauche en même temps [Résolu partiellement] (je n'ai pas encore eu le temps d'adapter ce tuto) : https://openclassrooms.com/courses/prog ... -complexes


Qt LineEdit [Résolu]

Ici, une simple fenêtre contenant 2 champs, voici un screen et son code pour le visualiser.
Connexion.png
Connexion.png (1.7 KiB) Viewed 1627 times

Code: Select all

var Fenetre = new QDialog();
Fenetre.setWindowTitle("Connexion");

var Cadre = new QFormLayout();
Fenetre.setLayout(Cadre);

var Pseudo = new QLineEdit();
var Password =  new QLineEdit();

Cadre.addRow("Pseudo", Pseudo);
Cadre.addRow("Password", Password);

Fenetre.exec();
Je voudrais que les caractères soit masquer (Password), or malgré différentes tentatives, comme le même genre de problème ci-dessus, je ne suis pas arrivé à y transcrire.
J'ai cherché dans cette doc donnée par Violette : http://web.univ-pau.fr/~puiseux/enseign ... #ss_part_1, j'y est donc trouvé :

Code: Select all

lineEdit->setEchoMode(QLineEdit::Password);
que j'ai essayé, en vain, d'y retranscrire.

Voilà tout.

Je vous remercie pour votre aide.

Cordialement

Sergent-Quentin
Last edited by Sergent-Quentin on 22 Jan 2016, 20:53, edited 4 times in total.
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: QListWidet et QLineEdit

Post by Jmgr »

Pour ton deuxième problème :

Code: Select all

Password.echoMode = QLineEdit.Password;
"My software never has bugs. It just develops random features."
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: QListWidet et QLineEdit

Post by Jmgr »

Et voilà pour monter et descendre un item :

Code: Select all

    var Fenetre = new QDialog();
    Fenetre.setWindowTitle("Menu");
    Fenetre.setFixedSize(500, 300);

    var Liste_Verte = new QListWidget(Fenetre);
    Liste_Verte.addItem("Samsung");
    Liste_Verte.addItem("Iphone");
    Liste_Verte.addItem("Nokia");
    Liste_Verte.setGeometry(50, 100, 150, 100);

    var Liste_Rouge = new QListWidget(Fenetre);
    Liste_Rouge.addItem("Halo 1");
    Liste_Rouge.addItem("Halo 2");
    Liste_Rouge.setGeometry(300, 100, 150, 100);

    var Verte = new QLabel("Liste verte", Fenetre);
    Verte.move(95, 80);
    var Rouge = new QLabel("Liste rouge", Fenetre);
    Rouge.move(345, 80);
    var Droite = new QPushButton(">>", Fenetre);
    Droite.move(215, 125);
    var Gauche = new QPushButton("<<", Fenetre);
    Gauche.move(215, 150);
    var Up = new QPushButton("Monter", Fenetre);
    Up.move(50, 220);
    var Down = new QPushButton("Descendre", Fenetre);
    Down.move(125, 220);
    var Champ = new QLineEdit(Fenetre);
    Champ.move(185, 25);
    var Ajout = new QPushButton("Ajouter", Fenetre);
    Ajout.move(215, 50);
    var Delete = new QPushButton("Supprimer", Fenetre);
    Delete.move(87.5, 245);


    Ajout.clicked.connect(function() {
    Liste_Verte.addItem(Champ.text);
    Champ.clear();
    });

    Gauche.clicked.connect(function() {
    if (Liste_Rouge.currentRow<0) {
    Console.print("Aucun élément selectionné");
    }
    else if (Liste_Rouge.count>0) {
    Liste_Verte.addItem(Liste_Rouge.currentItem().text());
    Liste_Rouge.takeItem(Liste_Rouge.currentRow);
    }
    });

    Droite.clicked.connect(function() {
    if (Liste_Verte.currentRow<0) {
    Console.print("Aucun élément selectionné");
    }
    else if (Liste_Verte.count>0) {
    Liste_Rouge.addItem(Liste_Verte.currentItem().text());
    Liste_Verte.takeItem(Liste_Verte.currentRow);
    }
    });

    Up.clicked.connect(function() {
    var pos = Liste_Verte.currentRow;
    if(pos == 0) return;
    Liste_Verte.insertItem(pos - 1, Liste_Verte.currentItem().text());
    Liste_Verte.takeItem(pos + 1);
    Liste_Verte.currentRow = pos - 1;
    });

    Down.clicked.connect(function() {
    var pos = Liste_Verte.currentRow;
    if(pos >= Liste_Verte.count - 1) return;
    Liste_Verte.insertItem(pos + 2, Liste_Verte.currentItem().text());
    Liste_Verte.takeItem(pos);
    Liste_Verte.currentRow = pos + 1;
    });

    Delete.clicked.connect(function() {
    if (Liste_Verte.currentRow<0) {
    Console.print("Aucun élément selectionné");
    }
    else {
    Console.print(Liste_Verte.currentItem().text()+" est supprimé");
    Liste_Verte.takeItem(Liste_Verte.currentRow);
    Console.print("Il reste "+Liste_Verte.count+ " items");
    }
    });

    Fenetre.exec();
Editer un item n'est pas possible pour l'instant à cause d'un bug dans Actiona. Je regarde ça.
"My software never has bugs. It just develops random features."
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

Re: QListWidet et QLineEdit

Post by Sergent-Quentin »

Merci !!!!

Je commençais à désespérer ^^, en plus tu as répondu le jour même de mon anniversaire :D

Les modifications ont été éditées et apportées au code.

Cordialement

Sergent-Quentin
Post Reply