Как проверить, показывает ли уже QWidget? - PullRequest
1 голос
/ 01 октября 2010

Я разрабатываю пользовательский интерфейс плагина для существующего приложения, использующего PyQt4. Окно создается с помощью uic.loadUi () по нажатию кнопки в главном окне. Проблема заключается в том, что если я снова нажму кнопку (пока отображается окно), окно будет создано заново, а несохраненные изменения будут потеряны. Я не хочу делать окно модальным. Какие варианты у меня есть, чтобы справиться с этой проблемой? Я предполагаю, что это будет связано с проверкой, показывает ли уже QWidget.

Ответы [ 2 ]

2 голосов
/ 01 октября 2010

Вы должны инициализировать указатель на QWidget (переменную-член) на 0.

Когда кнопка нажата, проверьте, равен ли указатель 0 - если это так, загрузите и покажите виджет и назначьте переменную указателя, чтобы указывать на новый виджет. Если при нажатии кнопки указатель не равен нулю, вызовите widget->raise() и widget->activateWindow().

Отключенные кнопки могут раздражать пользователей, также как и кнопки, которые, похоже, ничего не делают, например, их эффект скрыт.

0 голосов
/ 01 октября 2010

Я бы подумал, что это будет обрабатываться логикой вашего приложения больше, чем что-либо еще.Главное окно должно отключить кнопку после того, как она была нажата, а затем снова включить ее, когда окно закрыто.Подключите сигнал закрытия вторичного окна к слоту в главном окне, чтобы уведомить главное окно о закрытии вторичного окна.

...