Page 1 of 1

[JAVASCRIPT] Affichage d'éléments dans des InputDialog

Posted: 28 Jun 2013, 00:41
by JohnConnor
Bonjour,

Je voudrais demander si il était possible d'ajouter un paramètres aux InputDialog, celui de la présentation. Je m'explique :

Dans l'action d'Actionaz "Liste de Sélection", on peut choisir différent modes comme "Cases à Cocher", "Boutons Radios", "Liste", etc..
Mais les modes que je viens de citer sont impossibles - à ma connaissance - à créer en Javascript, je voudrais donc savoir si vous pouviez ajouter une Enumeration "InputMode" ou quelque chose du genre pour pouvoir le faire :)

Merci d'avance et bonne soirée

Re: [JAVASCRIPT] Affichage d'éléments dans des InputDialog

Posted: 28 Jun 2013, 09:55
by Jmgr
Salut,

Bonne remarque. En fait c'est possible, mais c'est assez compliqué.
Actionaz intègre la majorité de l'API de Qt, ce qui veut dire que tu peux créer une fenêtre contenant ce que tu veux uniquement en utilisant du Javascript.
Le seul problème c'est qu'il n'y a aucun exemple de ce genre d'utilisation dans le Wiki.

En tous cas il serait bien d'avoir cette fonctionnalité plus simplement. Bonne idée, merci.

Re: [JAVASCRIPT] Affichage d'éléments dans des InputDialog

Posted: 28 Jun 2013, 12:06
by JohnConnor
D'accord, et bien merci, j'avais un peu regardé le code C++ des InputDialog mais pas assez pour voir ça, je vais m'y attelez et poster un code d'exemple dès que possible ! :p

Re: [JAVASCRIPT] Affichage d'éléments dans des InputDialog

Posted: 28 Jun 2013, 12:47
by Jmgr
Et voilà un exemple :

Code: Select all

var dialog = new QDialog();
dialog.setWindowTitle("Ma fenêtre");
var mainLayout = new QFormLayout();
dialog.setLayout(mainLayout);

var lineEdit = new QLineEdit(dialog);
var comboBox = new QComboBox(dialog);
comboBox.addItem("Un");
comboBox.addItem("Deux");
comboBox.setCurrentIndex(0);
var buttonBox = new QDialogButtonBox(dialog);
buttonBox.addButton(QDialogButtonBox.Ok);
buttonBox.addButton(QDialogButtonBox.Cancel);

mainLayout.addRow("Champ 1", lineEdit);
mainLayout.addRow("Champ 2", comboBox);
mainLayout.addRow(buttonBox);

buttonBox.accepted.connect(dialog.accept);
buttonBox.rejected.connect(dialog.reject);

if(dialog.exec())
{
	Console.print("Champ1 = " + lineEdit.text);
	Console.print("Champ2 = " + comboBox.currentText);
}
Ce n'est pas trivial, mais ça permet de faire beaucoup de choses :)

Re: [JAVASCRIPT] Affichage d'éléments dans des InputDialog

Posted: 28 Jun 2013, 13:26
by JohnConnor
Merci beaucoup ! :D
Par contre je voudrais savoir si il était possible de retourner un Array du résultat de la fenêtre ? :)

Re: [JAVASCRIPT] Affichage d'éléments dans des InputDialog

Posted: 29 Jun 2013, 09:56
by Jmgr
Note que le code d'exemple que j'ai posté n'utilise pas InputDialog, c'est justement un exemple qui illustre le fait d'utiliser l'API de Qt pour construire une fenêtre.
Par contre je voudrais savoir si il était possible de retourner un Array du résultat de la fenêtre ? :)
Si tu parles de InputDialog, alors oui, normalement si tu sélectionne plusieurs éléments alors la valeur retournée est un tableau.
Sinon dans l'exemple précédent il te suffit de créer un tableau et d'insérer la valeur des champ directement.
Ou alors je n'ai pas compris ta question ?

Re: [JAVASCRIPT] Affichage d'éléments dans des InputDialog

Posted: 29 Jun 2013, 16:38
by JohnConnor
Et bien si j'ai bien lu le code des QInputDialog, on ne peut pas faire de QCheckBox pour une liste d'éléments, donc en théorie on ne peut pas retourner de tableau dans le window.value();

Re: [JAVASCRIPT] Affichage d'éléments dans des InputDialog

Posted: 29 Jun 2013, 19:18
by Jmgr
Non en effet. C'est pour ça que tu va devoir créer toi même ta fenêtre, comme dans l'exemple que j'ai posté au dessus. (qui n'utilise ni InputDialog fourni par Actionaz, ni QInputDialog fourni par Qt)

Re: [JAVASCRIPT] Affichage d'éléments dans des InputDialog

Posted: 29 Jun 2013, 19:31
by JohnConnor
Okay, merci :)