Szukałem online bezskutecznie. Czy ktoś wie, jak uzyskać dostęp do przycisku w oknie przycisku (utworzony przy użyciu szablonu "Okno z przyciskami z prawej")?Jak zmienić właściwości przycisków w polach przycisków w Qt Designer?
Odpowiedz
W Projektancie wybierz przycisk OK
lub Cancel
. Następnie otwórz edytor właściwości i przewiń w dół do sekcji QDialogButtonBox
. Następnie można rozwinąć element standardButtons
, aby wyświetlić dostępne przyciski. Dostępne są również inne właściwości, takie jak właściwość centerButtons
.
Jednak projektant daje bardzo mało kontroli nad polem przycisku.
W kodzie można wykonać wiele innych czynności, takich jak zmiana tekstu wyświetlanego na "standardowych przyciskach". Od documentation:
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);
tak długo, jak dać przycisk pudełko nazwę w projektanta, można ustawić te właściwości w kodzie.
Piszę tę odpowiedź dla społeczności Python. Używam PySide i borykałem się z podobnym problemem. Mam QDialogButtonBox i chciałbym mieć własne przyciski zamiast domyślnych.
Używam PySide, która jest mniej więcej dokładną repliką kodu C++, więc wierzę, że inni programiści C++ mogą również coś z niej uzyskać.
Oto w jaki sposób to zrobić:
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)
Chciałbym następnie wstawić mój przycisk okno do mojego układu jak ususal:
layout.addWidget(ok_cancel_button, 1, 1)
Teraz później w moim kodu mogę nic zrobić z moim przycisku . Pozwala zmienić jego nazwę:
my_ok_button.setText("Some Other Name")
Więc rzeczy do odnotowania jest to, że:
należy ustawić rolę przycisków w addButton() metodę, jeśli chcesz korzystać z funkcji podanych za pomocą standardowych przycisków. Na przykład. jeśli chcesz wykonać coś takiego jak poniżej, musisz mieć ustawiony zestaw przycisków ról .
ok_cancel_button.accepted.connect (self.ok_method_handler) ok_cancel_button.rejected.connect (self.close)
Zgaduję kod do formularza jest generowany i przechowywane w jakimś pliku, więc mogę przejść do tego pliku i zmienić właściwości przycisku, które muszę? –
Nie edytuj wygenerowanego pliku. Istnieją różne sposoby pracy z wygenerowanym kodem udokumentowanym na stronie [Tworzenie i używanie komponentów dla projektanta Qt] (http://doc.trolltech.com/4.6/qtdesigner-components.html). –
@KalebPederson Jeśli dołączę przycisk OK/Anuluj, nie można kliknąć przycisków wewnętrznych. –