Jak wyświetlić okno komunikatu z przyciskami Tak / Nie w Qt i jak sprawdzić, który z nich został naciśnięty?
To znaczy okno komunikatu, które wygląda następująco:
c++
qt
qmessagebox
sashoalm
źródło
źródło
Możesz użyć obiektu QMessage, aby utworzyć skrzynkę wiadomości, a następnie dodać przyciski:
źródło
setIcon
część metodyQMessageBox
obiektu. z jednym, jeśli teQMessageBox::NoIcon
QMessageBox::Question
QMessageBox::Information
wyliczeniaQT może być tak proste, jak w systemie Windows. Odpowiedni kod to
źródło
W odpowiedziach brakuje mi wezwania do tłumaczenia
tr
.Jedno z najprostszych rozwiązań, które pozwala na późniejszą internacjonalizację:
Ogólnie dobrym
Qt
zwyczajem jest umieszczanie wtr("Your String")
wywołaniu ciągów znaków na poziomie kodu .(
QMessagebox
jak wyżej działa w ramach dowolnejQWidget
metody)EDYTOWAĆ:
możesz używać
QMesssageBox
pozaQWidget
kontekstem, zobacz odpowiedź @ TobySpeight.Jeśli jesteś nawet poza
QObject
kontekście wymienićtr
zqApp->translate("context", "String")
- trzeba#include <QApplication>
źródło
QMessageBox
zawiera statyczne metody szybkiego zadawania takich pytań:Jeśli Twoje potrzeby są bardziej złożone niż przewidują to metody statyczne, powinieneś skonstruować nowy
QMessageBox
obiekt i wywołać jegoexec()
metodę, aby pokazać go we własnej pętli zdarzeń i uzyskać identyfikator wciśniętego przycisku. Na przykład możemy chcieć, aby domyślną odpowiedzią było „Nie”:źródło
QApplication
qApp->translate("context", "String")
tr
QObject
Jeśli chcesz zrobić to w Pythonie, musisz sprawdzić ten kod w swoim środowisku roboczym. też pisz w ten sposób. stworzyliśmy wyskakujące okienko w Pythonie.
źródło