10
votes

QSplitter montre un diviseur ou une marge entre les deux widgets

J'ai un format QSplitter et deux widgets de chaque côté, mais je veux pouvoir avoir une marge, de sorte qu'il existe une transition claire entre les deux widgets. J'ai regardé dans Qsplitter et QsplitterHandle mais je ne vois aucun moyen explicite de le faire.

Comment puis-je ajouter un diviseur entre les deux widgets?


3 commentaires

Avez-vous essayé de coiffer le qsplitter avec une feuille de style?


Non .. je ne sais pas ce que c'est ..


Stackoverflow.com/a/59951077/3096593


3 Réponses :


1
votes

Le qsplitter a une propriété guidon que vous pouvez définir.


1 commentaires

Qui ne fait rien pour faire en réalité le dessiner quelque chose, cela rend juste la poignée invisible plus large



1
votes

Sans entrer dans tous les détails de gory des feuilles de style, je peux vous donner quelques options:

1) Vous pouvez mettre en page un couple de QFrames dans votre séparateur, leur donner des mises en page et les widgets à l'intérieur de ces cadres . Vous pouvez utiliser les options d'espacement des présentations (voir Qlayout :: setContentsMargin ()) pour ajouter un peu d'espacement autour de vos widgets.

2) La manière de style (et à mon avis de manière supérieure) est de configurer Quelques feuilles de style pour vos widgets. Pour un bref exemple, vous pouvez faire quelque chose comme celui-ci sur vos widgets qui figurent dans votre séparateur: xxx

Si vous faites une sorte de conception de l'interface graphique avec qt, je recommande fortement Vous apprenez tout sur les feuilles de style, ils sont votre ami. Voir Les feuilles de style QT Référence pour une documentation.


0 commentaires

16
votes

Les feuilles de style sont un mécanisme puissant pour changer l'apparence de tout widget de QT.

voir ici pour un tutoriel rapide, et ici pour un guide de référence. Les feuilles de style peuvent être attribuées à l'aide d'un éditeur du concepteur ou passés sous forme de chaîne à l'aide de SetStylesheet (qstring). Il est certainement plus facile d'utiliser le concepteur car vous pouvez voir ce que votre widget ressemblera avant de l'exécuter.

Maintenant, pour votre problème spécifique. Un qsplitter est essentiellement un QFrame. Mais cela inclut également une poignée - comme vous le savez. Donc, typiquement c'est ce qui est généralement stylé.

donc, par exemple, vous pouvez le faire: xxx

qui fournit une image pour la poignée du séparateur. Ceci est un peu similaire à ce qui est fait sous Motif, où il y a une petite poignée rectangulaire a toujours montré que l'utilisateur peut cliquer sur pour déplacer le séparateur.

avec une petite expérimentation, vous pouvez créer une ligne de séparation cool. pour votre poignée. xxx

ou quelque chose de plus dessiné comme celui-ci. xxx

pour ce dernier, nous seulement Remplacez le séparateur horizontal, en raison de certaines des propriétés de la marge et du bas, ainsi que de la largeur qui devraient être différentes si nous changeions le séparateur vertical.

espère que cela aide. Une fois que vous avez commencé à jouer avec des feuilles de style, le plaisir commence vraiment.


1 commentaires

Merci cela m'a aidé aujourd'hui. Est-il censé répondre à l'attribut Hover? J'aimerais qu'il allait noir lorsque l'utilisateur plane, mais QSplitter :: Poignée: Hover ne semble pas faire le tour.