LINUX.ORG.RU

Убрать кнопку из диалога

 


0

2

Удобная это штука QInputDialog::getInt - быстро вызвал, получил что хотел, закрыл. Минимум телодвижений. А можно сделать так, чтоб в полученном окошке ещё и кнопок было не 2, а 1? Как убрать cancel? Обойдясь без наследования своего собственного класса.

★★★

А можно сделать так, чтоб в полученном окошке ещё и кнопок было не 2, а 1?

Судя по документации - нет, да и зачем вообще убирать кнопку cancel?

neversleep ★★★
()
Последнее исправление: neversleep (всего исправлений: 1)

Можно попробовать так:

QInputDialog dlg;
QList<QDialogButtonBox*> widgets = dlg.findChildren<QDialogButtonBox *>();

Вернет тебе всех детей типа QDialogButtonBox, а дальше модифицируй кнопки как хочешь.

grondek ★
()
Ответ на: комментарий от neversleep

Костыль, но работает )

Правда для статического QInputDialog::getInt это не сделать, а вот если самому создать объект QInputDialog и настроить аналогично getInt, то будет работать.

grondek ★
()
Ответ на: комментарий от LIKAN

QObject::findChildren ищет все дочерние объекты типа, переданного в параметре шаблона. Ищет, насколько я помню, рекурсивно. Кроме того, ей можно передать имя объекта для поиска.

Подробнее можно почитать документацию Qt, там все нормально описано.

grondek ★
()

cancel тут логически нужен. зачем ты решил его убрать то?

MikeDM ★★★★★
()
Ответ на: комментарий от grondek

Ок, я таким образом могу получить указатель на объект, который отвечает за кнопку cancel. Дальше что мне с этим указателем делать?

LIKAN ★★★
() автор топика
Ответ на: комментарий от LIKAN

Ок, я таким образом могу получить указатель на объект, который отвечает за кнопку cancel. Дальше что мне с этим указателем делать?

Прятать, очевидно же (hide()). А если речь идет о QDialogButtonBox, то можно попробовать вызвать setStandardButtons(). Только что-то ты делаешь не так, раз тебе это потребовалось. Кстати, кнопка закрытия окна также работает как cancel, ее ты тоже убирать будешь?

m0rph ★★★★★
()
Последнее исправление: m0rph (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.