简易代码如下,执行一个简单的按钮,adb root功能。
如果直接运行python脚本,可以正常运行。但使用
pyinstaller -i icom_100.ico -w -F adb.py –hidden-import PySide2.QtXml
进行转换exe后,双击exe文件,显示图形窗口后,点击button1时,会再次跳出一个相同的界面,同时原来的界面上会有显示Not Responding字样。关闭新跳出的界面后,原始界面的textBrowser处会显示出结果。不知道重复弹出这个窗口的原因?
from PySide2.QtWidgets import QApplication, QMessageBox
from PySide2.QtUiTools import QUiLoader
from PySide2.QtCore import QFile
import subprocess
import sys
class ADB:
def init(self):
self.ui = QUiLoader().load('adb.ui')
self.ui.button1.clicked.connect(self.mi_6_command_1)
self.ui.button2.clicked.connect(self.mi_6_command_2)
self.ui.button3.clicked.connect(self.mi_6_command_3)
self.textResult = ''
def mi_6_command_1(self):
a = subprocess.run('adb root')
if a.returncode == 1:
self.ui.textBrowser.setText("root fail")
return
else:
self.ui.textBrowser.setText("root success")
return
app = QApplication([])
adb = ADB()
adb.ui.show()
app.exec_()
回答
a = subprocess.run(‘adb root’)
你这里又启动了进程,是不是没有启动adb而是因为你的程序也叫adb启动了自己?