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