我正在制作一个程序来检查python中的adb设备我无法弹出窗口,请更正我的代码。从PyQt4导入sys导入子进程导入QtGui,QtCoread = subprocess.check_output([“ adb”,“ devices”])class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): QtGui.QToolTip.setFont(QtGui.QFont('SansSerif', 10)) btn = QtGui.QPushButton('Check Device', checkadb(ad)) btn.resize(135, 30) btn.move(50, 10) self.setGeometry(250, 250, 400, 400) self.setWindowTitle('Tooltips') self.show()def clicked(*args): QtGui.QMessageBox.about(QtGui, "No Device Found")def clicked2(*args): QtGui.QMessageBox.about(QtGui, "Device Found")def checkadb(ad): if len(ad) <= 27: clicked()elif len(ad) > 27: clicked2()def main():app = QtGui.QApplication(sys.argv)ex = Example()sys.exit(app.exec_())if __name__ == '__main__': main()
2 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
多一点的环境可能会有所帮助;您在将输出输入代码中时遇到麻烦吗?如果是这样,您可以考虑改用subprocess.Popen(...)。它带有一个参数列表,并且可以轻松地从指定的源获取输出。例如,如果要运行“ ls myDir”,则可以使用:
adbCmd = subprocess.Popen(['adb', 'devices'], stdout=PIPE)
然后,您可以使用Popen对象的communication()方法来确保命令运行完成并获取stdout和stderr:
adbOut, adbErr = adbCmd.communicate()
或者,由于communication返回一个元组,因此如果您只想要stdout:
adbOut = adbCmd.communicate()[0]
然后,您可以正常解析以找到所需的数字。
添加回答
举报
0/150
提交
取消