別の関数で実行するコマンドラインツールを実行して、このプログラムの追加コマンドをクリックしますが、これを応答として取得するたびにボタンに渡します。は1つの位置引数をとりますが、2が与えられました
は1つの位置引数を取りますが、2は
from tkinter import *
import subprocess
class StdoutRedirector(object):
def __init__(self,text_widget):
self.text_space = text_widget
def write(self,string):
self.text_space.insert('end', string)
self.text_space.see('end')
class CoreGUI(object):
def __init__(self,parent):
self.parent = parent
self.InitUI()
button = Button(self.parent, text="Check Device", command= self.adb("devices"))
button.grid(column=0, row=0, columnspan=1)
def InitUI(self):
self.text_box = Text(self.parent, wrap='word', height = 6, width=50)
self.text_box.grid(column=0, row=10, columnspan = 2, sticky='NSWE', padx=5, pady=5)
sys.stdout = StdoutRedirector(self.text_box)
def adb(self, **args):
process = subprocess.Popen(['adb.exe', args], stdout=subprocess.PIPE, shell=True)
print(process.communicate())
#return x.communicate(stdout)
root = Tk()
gui = CoreGUI(root)
root.mainloop()
エラー
Traceback (most recent call last):
File "C:/Users/Maik/PycharmProjects/Lernen/subprocessExtra.py", line 33, in <module>
gui = CoreGUI(root)
File "C:/Users/Maik/PycharmProjects/Lernen/subprocessExtra.py", line 18, in __init__
button = Button(self.parent, text="Check Device", command= self.adb("devices"))
TypeError: adb() takes 1 positional argument but 2 were given
Exception ignored in: <__main__.StdoutRedirector object at 0x013531B0>
AttributeError: 'StdoutRedirector' object has no attribute 'flush'
Process finished with exit code 1
与えられたいくつかの体は私に
を助けることができます
button = Button(self.parent, text="Check Device", command= self.adb("devices"))
コマンドが欲しいコールバック関数があります:** argsを
は、我々は正確なエラーを見ることができ、そしてそれは – Li357
'Traceback(最新の呼び出しの最後)が起こる特定の行: ファイルを「*/(root) ファイル "*/subprocessExtra.py"、行18、__init__内 ボタン=ボタン(self.parent、text = "Check Device"、command =TypeError:adb()は1つの位置引数を取るが、2つは与えられたで無視例外:<__メイン__ StdoutRedirectorオブジェクト0x013531B0で。> はAttributeError:「StdoutRedirector」オブジェクトが問題にする必要があります終了コード1 「 – MrChaosBude
を終えていない属性「フラッシュ」 プロセスがあります:^)を – Li357