首先,我想向你们展示目前为止的工作原理。下面是一个简单的GUI,其构建原理与引起问题的GUI相同。它有一个按钮,当你点击它计数器增加。你知道吗
#!/usr/bin/python3.5
import sys
from PyQt5 import QtWidgets
class GUI(QtWidgets.QWidget):
def __init__(self):
QtWidgets.QWidget.__init__(self)
self.initGUI()
self.behaviours()
self.counter = 0
def initGUI(self):
self.button = QtWidgets.QPushButton("Button")
self.label = QtWidgets.QLabel()
self.box = QtWidgets.QVBoxLayout()
self.box.addWidget(self.button)
self.box.addWidget(self.label)
self.setLayout(self.box)
self.show()
def behaviours(self):
self.button.clicked.connect(self.add)
def add(self):
self.counter = self.counter + 1
self.label.setText(str(self.counter))
app = QtWidgets.QApplication(sys.argv)
ex = GUI()
sys.exit(app.exec_())
我可以使用以下命令从Linux终端执行脚本:
python3 TestGUI.py
GUI按预期打开,我可以与按钮交互。你知道吗
一旦脚本中包含了子进程(如下面的一个),GUI仍然会打开,但它是完全黑色的,没有响应。你知道吗
p1 = subprocess.Popen("onedrive", stdout = subprocess.PIPE, shell = True)
(output, err) = p1.communicate()
我认为当您使用终端执行python脚本时会出现问题,python脚本本身会在终端中执行命令。你知道吗
你知道如何解决这个问题吗?你知道吗
非常感谢您的支持。你知道吗
您不应该使用Popen,因为^{} 方法是阻塞的,而应该使用^{} :
更新:
如果要将选项传递给命令,则必须使用^{} :
相关问题 更多 >
编程相关推荐