/
main_window.py
68 lines (49 loc) · 1.8 KB
/
main_window.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# coding: utf-8
from __future__ import absolute_import
from typing import *
from six.moves import *
import os
from libs.gui.pyside_modules import *
from libs.gui.layouts import *
from libs.gui.maya import *
class MainWindow(MayaMainWindowBase):
lang_switch_requested = Signal(str)
def __init__(self):
super(MainWindow, self).__init__()
def _setup_ui(self, central_widget):
# type: (QWidget) -> NoReturn
self.setWindowTitle(self.tr('window_title'))
def switch_lang(name):
self.lang_switch_requested.emit(name)
self.setup_ui()
lang_switch_jajp = QPushButton(self.tr('lang_jajp'))
lang_switch_jajp.clicked.connect(lambda: switch_lang('ja_JP'))
lang_switch_enus = QPushButton(self.tr('lang_enus'))
lang_switch_enus.clicked.connect(lambda: switch_lang('en_US'))
central_widget.setLayout(vbox(
hbox(
lang_switch_jajp,
lang_switch_enus,
),
QLabel(self.tr('label1')),
QLabel(self.tr('label2')),
))
class MayaApp(MayaAppBase):
def __init__(self):
super(MayaApp, self).__init__()
self.__translator = QTranslator()
def _initialize(self, app):
# type: (QApplication) -> NoReturn
self.__switch_languages('ja_JP')
app.installTranslator(self.__translator)
def _create_window(self):
# type: () -> MayaMainWindowBase
window = MainWindow()
window.lang_switch_requested.connect(lambda lang: self.__switch_languages(lang))
return window
def __switch_languages(self, lang_name):
# type: (str) -> NoReturn
self.__translator.load(lang_name, directory=os.path.join(os.path.dirname(__file__), 'i18n'))
def main():
app = MayaApp()
app.execute()