Как изменить свойства кнопок в полях кнопок в Qt Designer?

Я искал в интернете, но безрезультатно. Кто-нибудь знает, как получить доступ к кнопке в окне кнопки (созданном с помощью шаблона "диалог с кнопками справа")?

2 ответов


в конструкторе, выберите OK или . Затем откройте редактор свойств и прокрутите вниз до QDialogButtonBox. Затем вы можете развернуть standardButtons элемент, чтобы увидеть различные кнопки, которые доступны. Другие свойства, такие как centerButtons свойство, также доступны.

тем не менее, дизайнер дает вам очень мало контроля над коробкой кнопок.

в коде, вы можете сделать много других вещей, таких как изменение текста, появляется на "стандартных кнопках"."Из документация:

findButton = new QPushButton(tr("&Find"));
findButton->setDefault(true);

moreButton = new QPushButton(tr("&More"));
moreButton->setCheckable(true);
moreButton->setAutoDefault(false);

buttonBox = new QDialogButtonBox(Qt::Vertical);
buttonBox->addButton(findButton, QDialogButtonBox::ActionRole);
buttonBox->addButton(moreButton, QDialogButtonBox::ActionRole);

пока вы даете поле кнопки имя в конструкторе, вы можете установить эти свойства в коде.


Я пишу этот ответ на языке Python. Я использую PySide и столкнулся с аналогичной проблемой. У меня есть QDialogButtonBox, и я хотел бы иметь свои собственные кнопки вместо кнопок по умолчанию.

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

вот как бы я это сделал:

        my_ok_button = QtGui.QPushButton("My Ok Button")
        my_cancel_button = QtGui.QPushButton("My Cancel Button")
        ok_cancel_button = QtGui.QDialogButtonBox(QtCore.Qt.Horizontal)
        ok_cancel_button.addButton(my_ok_button, QtGui.QDialogButtonBox.ButtonRole.AcceptRole)
        ok_cancel_button.addButton(my_cancel_button, QtGui.QDialogButtonBox.ButtonRole.RejectRole)

затем я бы вставил свою кнопку в свой макет, как ususal:

layout.addWidget(ok_cancel_button, 1, 1)

Теперь позже в моем коде я могу сделать что угодно с моей кнопкой. Давайте изменим его название:

my_ok_button.setText("Some Other Name")

Так что тогда вещи, чтобы отметить вот что:

  • вы должны установить роль кнопок в методе addButton (), если вы хотите использовать функции, заданные стандартными кнопками. Е. Г. если вы
    хотите сделать что - то вроде ниже, вам нужно иметь кнопку роли набор.

    ok_cancel_button.общепринятый.подключение (self.ok_method_handler) ok_cancel_button.отвергнутый.подключение (self.закрыть)

более подробную информацию можно найти здесь.