prend 1 de position argument, mais 2 ont été donnés

Je voudrais lancer un outil en ligne de commande pour exécuter une fonction distincte et transmis au clic sur un bouton de la commande supplémentaires pour ce programme, mais chaque fois que je reçois cela comme une réponse.

prend 1 de position argument, mais 2 ont été donnés

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()

l'erreur

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

certains corps m'aider

il ya quelque chose de mal avec l' **args

  • Peut-on voir l'erreur exacte, et la ligne où il se passe
  • Traceback (most recent call last): File "*/subprocessExtra.py", à la ligne 33, in <module> gui = CoreGUI(root) le Fichier "*/subprocessExtra.py", à la ligne 18, dans init bouton = Button(self.parent, text="Vérifier" l'Appareil", command= self.la bad("devices")) TypeError: bad() prend 1 de position argument, mais 2 ont été donnés Exception ignoré dans: <__principaux__.StdoutRedirector objet au 0x013531B0> AttributeError: 'StdoutRedirector' objet n'a pas d'attribut "bouffées" le Processus est terminé avec le code de sortie 1
  • Qui devrait être dans la question :^)
  • Il ressemble au code en utilisant le redirecteur s'attend à une flush méthode, vous n'avez pas à fournir. Avez-vous essayé d'ajouter un flush méthode pour le redirecteur? Vous êtes également à l'aide de la command attribut de mal. Voir stackoverflow.com/q/5767228/7432
  • J'essaie de comprendre à travers des extraits de code et essayez comme ils apprendre à coder. lambda ne worke
InformationsquelleAutor MrChaosBude | 2016-06-13