def set_language(self, lang=None): """ 给应用程序设置语言(可以同时加载多个qm文件,比如程序本身的翻译文件, 以及官方提供的右键菜单的翻译文件 Args: lang: 语言代码,比如中国大陆zh-CN,中国台湾zh-TW. 如未设置,则获取本地语言. 语言代码参考表[注:QT中使用的是下划线]: http://www.lingoes.cn/zh/translator/langcode.htm """ if lang is None: lang = unicode(QLocale.system().name()) # PyQt4.QtCore.QString(u'zh_CN') self.translator = QTranslator(self) if self.translator.load(':/qm/{}'.format(lang)): self.installTranslator(self.translator) self.qt_tr = QTranslator(self) if self.qt_tr.load(':/qm/qt_{}.qm'.format(lang)): self.installTranslator(self.qt_tr)
class Runner: _window = None _application = None def __init__(self): self._application = QApplication(sys.argv) self._window = None # Main Window Initialized.. try: self._window = yali.gui.YaliWindow.Widget() except yali.Error, msg: ctx.logger.debug(msg) sys.exit(1) self._translator = QTranslator() self._translator.load( "qt_" + QLocale.system().name(), QLibraryInfo.location(QLibraryInfo.TranslationsPath)) ctx.mainScreen = self._window screens = self._get_screens(ctx.flags.install_type) self._set_steps(screens) # These shorcuts for developers :) prevScreenShortCut = QShortcut(QKeySequence(Qt.SHIFT + Qt.Key_F1), self._window) nextScreenShortCut = QShortcut(QKeySequence(Qt.SHIFT + Qt.Key_F2), self._window) QObject.connect(prevScreenShortCut, SIGNAL("activated()"), self._window.slotBack) QObject.connect(nextScreenShortCut, SIGNAL("activated()"), self._window.slotNext) # VBox utils ctx.logger.debug("Starting VirtualBox tools..") #FIXME:sh /etc/X11/Xsession.d/98-vboxclient.sh yali.util.run_batch("VBoxClient", ["--autoresize"]) yali.util.run_batch("VBoxClient", ["--clipboard"]) # Cp Reboot, ShutDown yali.util.run_batch("cp", ["/sbin/reboot", "/tmp/reboot"]) yali.util.run_batch("cp", ["/sbin/shutdown", "/tmp/shutdown"]) # base connections QObject.connect(self._application, SIGNAL("lastWindowClosed()"), self._application, SLOT("quit()")) QObject.connect(self._window, SIGNAL("signalProcessEvents"), self._application.processEvents) QObject.connect(self._application.desktop(), SIGNAL("resized(int)"), self._reinit_screen) # Font Resize fontMinusShortCut = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_Minus), self._window) fontPlusShortCut = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_Plus), self._window) QObject.connect(fontMinusShortCut, SIGNAL("activated()"), self._window.setFontMinus) QObject.connect(fontPlusShortCut, SIGNAL("activated()"), self._window.setFontPlus)
config = ConfigParser.RawConfigParser() config.read('workspace.properties') company = config.get('Version', 'company') product = config.get('Version', 'product') subproduct = config.get('Version', 'subproduct') version = config.get('Version', 'Version') myappid = (company + "." + product + "." + subproduct + "." + version) ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) app = QtGui.QApplication(sys.argv) icon = config.get('Icon', 'icon.general') app.setWindowIcon(QtGui.QIcon(icon)) locale = QLocale.system().name() qtTranslator = QTranslator() coretranslator = QtCore.QTranslator(app) if qtTranslator.load("qt_" + locale): qtTranslator.load( 'qt_%s' % locale, QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath)) app.installTranslator(qtTranslator) app.installTranslator(coretranslator) #print("Numero de nucleos: " + str(GeneralTools.available_cpu_count())) ex = TelaPrincipal.Ui_MainWindow() ex.show() sys.exit(app.exec_())