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)
if __name__ == '__main__': config = properties.get_config() logging.config.fileConfig(config.get('Global', 'logConfig')) logger = logging.getLogger('globalLogger') try: import sys app = QtGui.QApplication(sys.argv) # Load localization settings language = config.get('Localization', 'language') localize_path = config.get('Localization', 'translationspath') filename = config.get('Localization', 'translationnameformat').format(language) # Qt localization settings qt_translator = QTranslator() qt_translator.load('qt_' + language, QLibraryInfo.location(QLibraryInfo.TranslationsPath)) app.installTranslator(qt_translator) # Application localization settings app_translator = QTranslator() app_translator.load(os.path.join(localize_path, filename)) app.installTranslator(app_translator) # Create main window form = MainWindow() form.setWindowTitle(u'PyStitch v0.7') # Create splash screen splash = QtGui.QSplashScreen(form, QtGui.QPixmap(config.get('UI', 'splashScreenPic')),
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_())
class MyQApplication(QApplication): def __init__(self, args): super(MyQApplication, self).__init__(args) self.qt_tr = None self.translator = None self.set_style() self.set_language() self.set_font() def set_style(self, filepath=None): """ 给应用程序设置style. Args: filepath: qss文件的路径或者是在资源文件中的表现路径(:/开头) Returns: None Raises: """ if filepath is None: # filepath = os.path.join(os.path.dirname(os.path.abspath(__file__)), r'resource\style\bwallet.qss') filepath = ":/style/bwallet" # 正式环境 self.set_stylesheet(filepath=filepath) 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) def set_stylesheet(self, filepath): """ 给控件设置样式 Args: filepath: qss文件的路径 obj: 要设置style的对象(可以是qApp,或者任意控件对象) """ f = QFile(filepath) f.open(QFile.ReadOnly) styleSheet = unicode(f.readAll(), encoding='utf8') self.setStyleSheet(styleSheet) f.close() def set_font(self): font_id = QFontDatabase.addApplicationFont(":/font/Roboto-Medium") font_families = QFontDatabase.applicationFontFamilies(font_id) font = QFont() font.setFamily(font_families.takeFirst()) font.setPointSize(10) self.setFont(font)
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_())