2017-01-07 2 views
0

Ich habe eine horizontale QSplitter mit zwei Kindern QWidget Objekte. Wenn der Benutzer den Splitter-Handle jetzt nach rechts über einen bestimmten Schwellenwert hinaus zieht (was, wie ich annehme, von der Mindestgröße des Kindes abhängt), verschwindet die rechte QWidget mit einem Klick. setSizePolicy, setMinimumSize nicht helfen.Wie verhindere ich, dass QSplitter Kinder-Widgets vollständig versteckt?

Darüber hinaus wird hideEvent nicht ausgelöst, und ich kann nicht einmal erkennen, wenn mein Widget ausgeblendet wird. Ich habe versucht, mit resizeEvent, aber sowohl seine alten und neuen Breite Parameter scheinen nicht dokumentierte seltsame Werte - manchmal ist es 0, manchmal -1. Selbst wenn ein System vorhanden ist, kann es sich mit der nächsten Qt-Version ändern.

Idealerweise möchte ich dieses Verschwindeverhalten komplett ausschalten. Als Kompromiss wäre ich dankbar für eine Idee, wie man sie erkennen kann.

Antwort

1

Wenn Sie eine bestimmte widget Kollabieren verhindern wollen, dann müssen Sie ...

int index = my_splitter.indexOf(widget); 
my_splitter.setCollapsible(index, false); 

Dokumentation ist here.

+0

Ha! Sie haben Recht - sie nennen es "Zusammenbruch", nicht "Verstecken". Löst mein aktuelles Problem, danke. Aus reiner Neugier: Gibt es eine Möglichkeit, dieses Zusammenbruchsereignis zu erkennen, nachdem es passiert ist? – sigil

Verwandte Themen