Qt: Запуск кода, когда QMainWindow развернуто / немаксимизировано - PullRequest
2 голосов
/ 08 декабря 2011

Мне нужен некоторый код C ++ для запуска ТОЛЬКО , если / когда пользователь максимизирует или демитализирует (плавает) QMainWindow.Программа по-прежнему будет работать без этого дополнительного кода, если это необходимо, но наличие этой функции определенно поможет эстетике.По сути, основной сплиттер в графическом интерфейсе должен быть на 25%, если окно развернуто, и на 50%, если оно не развернуто.(состояние плавающего окна по умолчанию)

Прямо сейчас, пользователь должен перетащить его вручную, если он хочет больше места, и большая часть экранного пространства с одной стороны сплиттера потрачена впустую, поскольку QSplitter хочет установить значение по умолчанию 50%.независимо от размера окна.Это раздражает, но это не испортит ваш день, если это произойдет.

Я проверил, есть ли в QMainWindow слот для проверки максимизированного состояния окна, но, насколько я знаю, его нет.Как это можно сделать?

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011

Для запроса текущего состояния окна:

Чтобы прослушать изменения состояния, переопределите:

Если у вас есть QEvent :: WindowStateChange, вызовите код размещения вашего сплиттера. Во всех случаях передайте событие обработчику событий базового класса.

1 голос
/ 08 декабря 2011

Я не уверен, как это сделать, но вы можете подумать, что переключение с «максимизированного» на «восстановление вниз» (или наоборот) не гарантирует значительного изменения размера окна, если пользовательокно уже вытянуто довольно большое, прежде чем его развернуть.Если вы найдете способ получать эти события, вам, вероятно, все равно захочется проверить фактический размер окна, прежде чем вносить свои корректировки.

Возможно, вы просто захотите обработать события изменения размера для внесения ваших корректировок, которые позволят вамобрабатывать случаи, когда пользователь вручную растягивает или сжимает окно (а также когда они увеличивают или восстанавливают).Я не уверен, что считаю такое поведение удовлетворительным как пользователь, поэтому, возможно, предложу его как настраиваемый элемент:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...