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)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.