[C++ Qt]Własny tekst przycisków w QMessageBox


(Kamilmlody5) #1

Witam.

Przeszperałem dokumentację, fora i nie potrafię poradzić sobie z tym problemem. Jak zmodyfikować kod, aby w przycisku save pisało, np.: zapisz mnie.

QMessageBox::StandardButton ret;

                ret = QMessageBox::question(this, tr("Zapisanie zmian"),

                                            tr("Dokument został zmodyfikowany.\n"

                                               "Czy chcesz zapisać zmiany ?"),

                                            QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);

                if (ret == QMessageBox::Save)

                    return save();

                else if (ret == QMessageBox::Cancel)

                    return false;

(Krystian Rosinski) #2

QMessageBox::Save, QMessageBox::Discard, QMessageBox::Cancel itd. to standardowe przyciski o standardowych opisach (zależnie od wersji językowej interfejsu). W tej sytuacji chyba najprościej będzie utworzyć nowy QDialog i dodać własne przyciski QPushButton, których opis, ikony itp. możesz zmienić w QtCreator... o ile zmiana "Zapisz" na "Zapisz mnie" jest tak istotna.

Możesz również zapoznać się z narzędziem o nazwie Linguist. Tam powinna być możliwość zmiany domyślnych opisów. Tak sądzę, ale nigdy z niego nie korzystałem.


(Spam) #3

http://stackoverflow.com/questions/9264 ... on-display


(Kamilmlody5) #4

Aah.. Już wymyśliłem kilka sposobów. Ale i tak mam problemy

switch(QMessageBox::warning(

                          this,

                          tr("Zapisanie zmian"),

                          tr("Dokument został zmodyfikowany.\nCzy c ?"),

                          tr("Zapisz i uruchom"),

                          tr("Nie zapisuj"),

                          tr("Anuluj")))

               {

               case 0 : {

                   return save();

                   break;

               }

               case 1 : {

                   return false;

                   break;

               }

               case 2 : {

                   return false;

                   break;

               }

               default : {

                   return false;

                   break;

               }

Otóż jak ustawić zasadę każdą z przycisków w powyższym kodzie? żeby np.: Nie zapisuj miał zasady discard?