2009-09-17 6 views
1

Je voudrais demander si quelqu'un sait comment afficher 2 QToolBars en deux lignes, l'une sur l'autre? J'ai trouvé la classe QStyleOptionToolBar, mais je ne sais pas comment l'utiliser ...Comment définir la ligne où un QToolBar est affiché?

Il est facile de faire glisser une barre d'outils avec la souris pour la placer sous l'autre, donc je pense qu'il doit y avoir un moyen de faire ça peut être fait à partir du code source aussi bien ...

Tout indice serait apprécié!

Claus

Répondre

0

Essayez d'appeler QMainWindow :: addToolBarBreak (Qt :: ToolBarArea) entre l'ajout des deux barres d'outils.

+0

beaucoup, c'est tout! Je pensais que je l'avais déjà essayé, mais évidemment pas ... J'ai dû le manquer dans la documentation de QMainWindow ... trop de programmation tard dans la nuit je suppose ... – Bitjuggler

0

Je pense que lorsque vous ajoutez de la 2 barre d'outils si vous les placez dans la même zone, ils vont empiler automatiquement:

QMainWindow *mainWin = get_main(); // however you get it 
mainWin->addToolBar(Qt::TopToolBarArea, new QToolBar); 
mainWin->addToolBar(Qt::TopToolBarArea, new QToolBar); 

Cela devrait produire 2 barres d'outils, les deux en haut .

+0

Merci beaucoup! J'ai déjà essayé cela et il place les deux barres d'outils en une seule ligne, mais je voudrais afficher les deux barres d'outils en deux lignes en haut, l'une en dessous de l'autre. Même si la deuxième barre d'outils est si grande qu'elle ne correspond plus à la largeur du mainWin, elle n'est pas automatiquement poussée vers une deuxième ligne, mais elle est coupée et n'est pas affichée complètement. La documentation de Qt n'est pas claire comment définir une barre d'outils explicitement à la deuxième ligne, le seul indice que j'ai trouvé est QStyleOptionToolBar où sont les options pour placer la barre d'outils, mais je ne comprends pas comment utiliser cette classe ... – Bitjuggler

0

Si vous voulez des barres d'outils pour être en deux lignes vous devriez le faire de la manière suivante:

firstToolbar = new QToolBar(this); 
secondToolbar = new QToolBar(this); 

addToolBar(Qt::TopToolBarArea, firstToolbar);  
addToolBarBreak(); 
addToolBar(Qt::TopToolBarArea, secondToolbar); 

addToolBarBreak accepte Qt :: ToolBarArea de sorte que vous pouvez spécifier pour quelle zone vous souhaitez ajouter la pause. Par défaut, il s'agit de Qt :: TopToolBarArea.

Questions connexes