Toolbar Qt - C++ - Programmation
Marsh Posté le 14-11-2016 à 20:47:59
Personne n'a d'idee ? Bon j'ai recopie un code qui fonctionne :
Code :
|
mais le probleme c'est que ca ne marche que pour des toolbar dans une QMainWindow. Or dans le code sur lequel je travaille je dois faire ca dans un QWidget et je ne peux donc pas ajouter de toolbar directement en appelant la methode "addToolbar" mais en passant par un layout. Voici le code de test que j'ai tape pour reproduire la situation dans laquelle je me trouve :
Code :
|
Ca fonctionne bien pour les QAction mais pas pour la QLineEdit, c'est a dire que lorsque je clique sur la fleche pour afficher la liste des widgets qui ont ete cachees apres avoir reduit la largeur de la fenetre, je vois tous les QAction mais pas le QLineEdit.
Quelqu'un aurait une idee d'ou vient le probleme ? Merci.
Edit : Pour mieux visualiser la chose j'ai fais des captures ecrans de mon 2eme test :
Avant redimensionnement :
Apres avoir redimensionne, les icones en trop disparaissent, je clique donc sur la fleche pour les afficher dans la liste deroulante : elles s'affichent toutes sauf la QLineEdit :
Marsh Posté le 21-11-2016 à 20:38:48
Bon après quelques recherches je me suis rendu compte que c'etait une particularite de Qt, c'est a dire que lorsque la QTooBar n'est pas dans une QMainWindow elle perd certaines de ses fonctionnalites :
Citation : When a QToolBar is not a child of a QMainWindow, it loses the ability to populate the extension pop up with widgets added to the toolbar using addWidget(). Please use widget actions created by inheriting QWidgetAction and implementing QWidgetAction::createWidget() instead. |
Du coup j'ai cree des classes derivant de QWidgetAction pour chaque QWidget (en creant a chaque fois le widget specifique dans createWidget() ) et ca marche correctement. Voici le code :
main.cpp :
Code :
|
QMyWidgetAction.h :
Code :
|
QMyWidgetAction.cpp :
Code :
|
Voici le resultat :
Les widgets presents dans l'extension list fonctionnent correctement, je les ai testes. Mais maintenant je voudrais savoir si il est possible de les presenter horizontalement plutot que verticalement a l'interieur de l'extenion list ? Par exemple au lieu d'avoir "paste" en dessous de "open" je voudrais l'avoir a sa droite, et ainsi de suite. Merci.
Marsh Posté le 10-11-2016 à 20:39:55
Bonjour, j'utilise Qt et je dois faire une toolbar un peu comme celle de l'explorateur windows sous la barre de menu (je suis sous Windows 7 mais je pense que c'est la meme chose sur les versions posterieures) c'est a dire que quand on reduit la largeur de la fenetre, les icones qui n'ont plus la place de s'afficher son cachees automatiquement et placees dans une liste deroulante disponible en cliquant sur une fleche qui apparait alors sur la toolbar. Est-ce que vous savez si il existe une classe toute faite avec Qt ou dois-je tout coder a partir de zero ? Merci.