Domanda

Come posso tradurre facilmente pulsanti standard (Sì, No) da QMessageBox? Non posso usare self.tr su tali argomenti, quindi vorrei realizzarlo in qualche altro modo semplice. Devo usare tutto il sistema di traduzione?

È stato utile?

Soluzione

Ecco come ho fatto:

Per prima cosa è necessario copiare il file qt_LOCALE.qm nella directory dell'applicazione. Il mio era:

cp /usr/share/qt4/translations/qt_fr.qm .

In secondo luogo, è necessario caricare un traduttore per l'applicazione.

application = QApplication(argv)

locale = QLocale.system().name()
qtTranslator = QTranslator()
if qtTranslator.load("qt_"+locale):
    application.installTranslator(qtTranslator)

main_window = QMainWindow()
main_window.show()

exit(application.exec_())

Altri suggerimenti

Sei sicuro di avere a tradurre da soli? In altri toolkit, pulsanti standard vengono convertiti automaticamente alla lingua che l'utente sta utilizzando.

Il modo più veloce è qualcosa di simile:

mymessagebox.button(mymessagebox.Yes).setText("Yes, please!")
mymessagebox.button(mymessagebox.No).setText("No, thanks.")

pulsanti standard Vedere la documentazione QMessageBox.

Se si desidera avere Sì / No tradotto nella lingua corrente, di solito l'impostazione della lingua del sistema dovrebbe essere sufficiente. In caso contrario, provare con il suggerimento di TmpNR.

Se si vuole testi personalizzati: I metodi statici, come questione (), ecc non consentono testi dei pulsanti personalizzati. Questo è un peccato, come "Yes" / stile cattivo "No" finestre di dialogo sono considerati (non sono descrittivi, si deve leggere l'intero messaggio, e la sua facile fraintendere ciò che significa Sì e cosa significa No e accidentalmente negando). Per i testi personalizzati, è necessario utilizzare direttamente QMessageBox. Io suggerirei di scrivere i propri metodi statici accettare testi dei pulsanti opzionali.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top