#!/usr/bin/env python3 import os import sys import PyQt5.QtWidgets as QtWidgets def RunProgram(): window.hide() if os.system("which gx-env-run"): QtWidgets.QMessageBox.critical(window, "错误", "gx-env-run 不存在!") return if runProgramWithRoot.isChecked(): if os.getenv("HOME") + "/.config/gx-env/bwrap": envDist = os.environ envSet = "DISPLAY=$DISPLAY " for i in envDist: envSet += "{}=${} ".format(i, i) os.system("pkexec env " + envSet + " gx-env-run " + programPath.text()) return else: os.system("gx-env-run-root " + programPath.text()) return os.system("gx-env-run " + programPath.text()) sys.exit(0) app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QMainWindow() widget = QtWidgets.QWidget() layout = QtWidgets.QGridLayout() programPath = QtWidgets.QLineEdit() browser = QtWidgets.QPushButton("浏览……") runProgramWithRoot = QtWidgets.QCheckBox("以 root 权限运行应用") layout.addWidget(QtWidgets.QLabel("""你可以在兼容模式下运行程序"""), 0, 0, 1, 4) layout.addWidget(QtWidgets.QLabel("程序路径:"), 1, 0) layout.addWidget(programPath, 1, 1, 1, 3) #layout.addWidget(browser, 1, 3) controlLayout = QtWidgets.QHBoxLayout() cancelButton = QtWidgets.QPushButton("取消") okButton = QtWidgets.QPushButton("确定") okButton.clicked.connect(RunProgram) controlLayout.addWidget(runProgramWithRoot) controlLayout.addWidget(browser) controlLayout.addWidget(cancelButton) controlLayout.addWidget(okButton) layout.addLayout(controlLayout, 2, 2, 1, 2) widget.setLayout(layout) window.setCentralWidget(widget) window.show() sys.exit(app.exec_())