문제

qmessagebox에서 표준 버튼 (예, 아니오)을 쉽게 번역하려면 어떻게해야합니까? 나는 그 주장에 대해 self.tr을 사용할 수 없으므로 다른 간단한 방법으로 그것을 달성하고 싶습니다. 전체 번역 시스템을 사용해야합니까?

도움이 되었습니까?

해결책

내가 한 방법은 다음과 같습니다.

먼저 복사해야합니다 qt_LOCALE.qm 응용 프로그램 디렉토리에 파일을 파일하십시오. 내 것이었다 :

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

둘째, 응용 프로그램의 번역기를로드해야합니다.

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_())

다른 팁

당신은 그들을 직접 번역해야합니까? 다른 툴킷에서 표준 버튼은 사용자가 사용하는 언어로 자동 번역됩니다.

가장 빠른 방법은 다음과 같습니다.

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

가능한 모든 것에 대해서는 Qmessagebox 문서를 참조하십시오 표준 버튼.

예/아니오를 현재 언어로 번역하려면 일반적으로 시스템 언어를 설정하면 충분해야합니다. 그렇지 않으면 Natim의 제안으로 시도하십시오.

사용자 정의 텍스트를 원하는 경우 : Question () 등과 같은 정적 메소드는 사용자 정의 버튼 텍스트를 허용하지 않습니다. "예"/"아니오"대화는 나쁜 스타일로 간주되기 때문에 불행한 일입니다 (설명 적이 아니며 전체 메시지를 읽어야하며 예의 의미와 실수로 부정적인 것을 오해하기 쉬운). 사용자 정의 텍스트의 경우 qmessagebox를 직접 사용해야합니다. 선택적인 버튼 텍스트를 받아들이는 자체 정적 메소드를 작성하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top