def _onOpenKeyboard(self): kernelType = QSysInfo.kernelType() if kernelType == 'winnt': try: path = glob.glob( r'C:\Windows\WinSxS\amd64_microsoft-windows-osk_*\osk.exe')[0] ret = QProcess.startDetached(path) self.resultEdit.append('start 64 osk: %s' % ret) except Exception as e: self.resultEdit.append('start osk error: %s' % e) try: # 32位程序调用64位操作系统下的程序会被重定向到SysWOW64目录 # 可通过`Wow64DisableWow64FsRedirection`和`Wow64RevertWow64FsRedirection`控制 ret = QProcess.startDetached(r'C:\Windows\system32\osk.exe') self.resultEdit.append('start 32 osk: %s' % ret) except Exception as e: self.resultEdit.append('start osk error: %s' % e) elif kernelType == 'darwin': pass # elif kernelType=='linux': else: ret = QProcess.startDetached('florence') self.resultEdit.append('start florence: %s' % ret) ret = QProcess.startDetached('onboard') self.resultEdit.append('start onboard: %s' % ret) ret = QProcess.startDetached('kvkbd') self.resultEdit.append('start kvkbd: %s' % ret)
def get_os_name(self): global q_os_version_available try: os_name = QSysInfo.prettyProductName() if q_os_version_available: ver = QOperatingSystemVersion.current() if ver.name() != '': os_name += ' {} '.format(ver.name()) if ver.segmentCount() > 2: os_name += '{}.{}.{}'.format(ver.majorVersion(), ver.minorVersion(), ver.microVersion()) elif ver.segmentCount == 2: os_name += '{}.{}'.format(ver.majorVersion(), ver.minorVersion()) elif ver.segmentCount == 1: os_name += '{}'.format(ver.majorVersion()) kernel_name = QSysInfo.kernelType() + ' ' + QSysInfo.kernelVersion( ) if os_name != kernel_name: os_name += ' ({})'.format(kernel_name) return os_name except Exception as e: return platform.platform()
def on_run_on_startup_toggled(self, i_checked_bool): if QSysInfo.kernelType() == "linux": pass elif QSysInfo.kernelType() == "darwin": plist = "com.matc.mindfulness-at-the-computer.plist" source_file = mc.mc_global.get_user_files_path(plist) target_dir = os.path.join(os.path.expanduser("~"), "Library/LaunchAgents/") if i_checked_bool and os.path.isdir("/Applications/mindfulness-at-the-computer.app"): copyfile(source_file, os.path.join(target_dir, plist)) elif os.path.isfile(os.path.join(target_dir, plist)): os.remove(os.path.join(target_dir, plist)) elif QSysInfo.kernelType() == "winnt": pass mc.model.SettingsM.get().run_on_startup = i_checked_bool
def on_run_on_startup_toggled(self, i_checked_bool): if QSysInfo.kernelType() == "linux": pass elif QSysInfo.kernelType() == "darwin": plist = "com.matc.mindfulness-at-the-computer.plist" source_file = mc.mc_global.get_user_files_path(plist) target_dir = os.path.join(os.path.expanduser("~"), "Library/LaunchAgents/") if i_checked_bool and os.path.isdir( "/Applications/mindfulness-at-the-computer.app"): copyfile(source_file, os.path.join(target_dir, plist)) elif os.path.isfile(os.path.join(target_dir, plist)): os.remove(os.path.join(target_dir, plist)) elif QSysInfo.kernelType() == "winnt": pass mc.model.SettingsM.get().run_on_startup = i_checked_bool
def createPanel(self): labelReportTitle = QLabel( self.translate("bugReport", "Bug Report Title: ")) self.lineEditReportTitle = QLineEdit() labelTestedEnvironment = QLabel( self.translate("bugReport", "Tested Environment: ")) self.lineEditTestedEnvironment = QLineEdit( self.translate( "bugReport", """System Platform:{}_{} Python Version:{}.{}.{}-{} PyQt Version:{} QT Version:{}""" ).format( QSysInfo.prettyProductName() if QSysInfo.prettyProductName() == "unknown" else "{}-{}".format(QSysInfo.kernelType(), QSysInfo.kernelVersion()), QSysInfo.currentCpuArchitecture(), sys.version_info.major, sys.version_info.minor, sys.version_info.micro, sys.version_info.releaselevel, PYQT_VERSION_STR, QT_VERSION_STR)) radioBtnQuickReport = QRadioButton( self.translate("bugReport", "Quick Report")) radioBtnKnowHowFix = QRadioButton( self.translate("bugReport", "Know How Fix")) radioBtnKnowHowFix.setChecked(True) radioBtnFeatureRequest = QRadioButton( self.translate("bugReport", "Feature Request")) buttonOpenHowReportBugURL = QPushButton( self.translate( "bugReport", """Click Me! Read "HOW REPORT A BUG" before report a bug.""")) self.buttonGroupBugReport = QButtonGroup() self.buttonGroupBugReport.addButton(radioBtnQuickReport) self.buttonGroupBugReport.addButton(radioBtnKnowHowFix) self.buttonGroupBugReport.addButton(radioBtnFeatureRequest) self.buttonGroupBugReport.addButton(buttonOpenHowReportBugURL) hboxRadiobutton = QHBoxLayout() hboxRadiobutton.addWidget(radioBtnKnowHowFix) hboxRadiobutton.addWidget(radioBtnQuickReport) hboxRadiobutton.addWidget(radioBtnFeatureRequest) hboxRadiobutton.addWidget(buttonOpenHowReportBugURL) hboxRadiobutton.addStretch() labelStepsToReproduce = QLabel( self.translate("bugReport", "Steps To Reproduce: ")) self.textEditStepsToReproduce = QTextEdit() labelActualresults = QLabel( self.translate("bugReport", "Actual results: ")) self.textEditActualresults = QTextEdit() self.textEditActualresults.insertPlainText( self.translate( "bugReport", "if have Python's Traceback, Please Paste.\nif is V2Ray-core JSON Editor issue, please Paste the JSON File without server information." )) self.textEditActualresults.setAcceptDrops(True) labelExpectedresults = QLabel( self.translate("bugReport", "Expected results: ")) self.textEditExpectedresults = QTextEdit() labelFeatureRequest = QLabel( self.translate("bugReport", "Feature Request: ")) self.textEditFeatureRequest = QTextEdit() labelQuickReport = QLabel(self.translate("bugReport", "Quick Report: ")) self.textEditQuickReport = QTextEdit() labelHowFix = QLabel(self.translate("bugReport", "How Fix: ")) self.textEditHowFix = QTextEdit() gridBoxReport = QGridLayout() gridBoxReport.addWidget(labelReportTitle, 0, 0) gridBoxReport.addWidget(self.lineEditReportTitle, 0, 1) gridBoxReport.addWidget(labelTestedEnvironment, 1, 0) gridBoxReport.addWidget(self.lineEditTestedEnvironment, 1, 1) gridBoxReport.addLayout(hboxRadiobutton, 2, 0, 1, 2) gridBoxQuickReport = QGridLayout() gridBoxQuickReport.addWidget(labelQuickReport, 0, 0) gridBoxQuickReport.addWidget(self.textEditQuickReport, 0, 1) self.groupBoxQuickReport = QGroupBox("", self) self.groupBoxQuickReport.setLayout(gridBoxQuickReport) self.groupBoxQuickReport.hide() gridBoxKnowHowFix = QGridLayout() gridBoxKnowHowFix.addWidget(labelStepsToReproduce, 0, 0) gridBoxKnowHowFix.addWidget(self.textEditStepsToReproduce, 0, 1) gridBoxKnowHowFix.addWidget(labelActualresults, 1, 0) gridBoxKnowHowFix.addWidget(self.textEditActualresults, 1, 1) self.buttonInsertPiture = QPushButton( self.translate("bugReport", "Insert Picture From URL:")) self.lineEditInserPiture = QLineEdit() gridBoxKnowHowFix.addWidget(self.lineEditInserPiture, 2, 1) gridBoxKnowHowFix.addWidget(self.buttonInsertPiture, 2, 0) gridBoxKnowHowFix.addItem(QSpacerItem(50, 50), 3, 0, 1, 4) gridBoxKnowHowFix.addWidget(labelExpectedresults, 4, 0) gridBoxKnowHowFix.addWidget(self.textEditExpectedresults, 4, 1) gridBoxKnowHowFix.addWidget(labelHowFix, 5, 0) gridBoxKnowHowFix.addWidget(self.textEditHowFix, 5, 1) self.groupBoxKnowHowFix = QGroupBox() self.groupBoxKnowHowFix.setLayout(gridBoxKnowHowFix) gridBoxFeatureRequest = QGridLayout() gridBoxFeatureRequest.addWidget(labelFeatureRequest, 0, 0) gridBoxFeatureRequest.addWidget(self.textEditFeatureRequest, 0, 1) self.groupBoxFeatureRequest = QGroupBox("", self) self.groupBoxFeatureRequest.setLayout(gridBoxFeatureRequest) self.groupBoxFeatureRequest.hide() hboxButton = QHBoxLayout() self.buttonExportBugReportText = QPushButton( self.translate("bugReport", "Export Bug Report Text")) self.buttonExitButReport = QPushButton( self.translate("bugReport", "Exit")) hboxButton.addStretch() hboxButton.addWidget(self.buttonExportBugReportText) hboxButton.addWidget(self.buttonExitButReport) vboxBugReport = QVBoxLayout(self) vboxBugReport.addLayout(gridBoxReport) vboxBugReport.addWidget(self.groupBoxQuickReport) vboxBugReport.addWidget(self.groupBoxKnowHowFix) vboxBugReport.addWidget(self.groupBoxFeatureRequest) vboxBugReport.addLayout(hboxButton) vboxBugReport.addStretch() self.settextEidtReadonly(result=True) self.createSignals()
def createStatusBar(self): sysinfo = QSysInfo() myMachine = "current CPU Architecture: " + sysinfo.currentCpuArchitecture( ) + " *** " + sysinfo.prettyProductName( ) + " *** " + sysinfo.kernelType() + " " + sysinfo.kernelVersion() self.statusBar().showMessage(myMachine, 0)