0

こんにちは、Pythonでadbデバイスをチェックするプログラムを作成しています

ポップアップ ウィンドウを作成できません。コードを修正してください。

import sys import subprocess from PyQt4 import QtGui, QtCore

ad = 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()
4

2 に答える 2

0

もう少し文脈が役立つかもしれません。出力をコードに取り込むのに問題がありますか? その場合は、代わりに subprocess.Popen(...) の使用を検討してください。引数のリストを取り、指定されたソースから簡単に出力を取得できます。たとえば、「ls myDir」を実行したい場合は、次のように使用できます。

adbCmd = subprocess.Popen(['adb', 'devices'], stdout=PIPE)

次に、Popen オブジェクトの communicate() メソッドを使用して、コマンドが最後まで実行され、stdout と stderr を取得できるようにします。

adbOut, adbErr = adbCmd.communicate()

または、標準出力のみが必要な場合は、 communicate がタプルを返すため:

adbOut = adbCmd.communicate()[0]

次に、通常どおり解析して、必要な数を見つけることができます。

于 2013-06-26T17:18:00.970 に答える