python错误:方法只接受1个参数(给定2个)

2024-10-01 15:38:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python程序中有一个小问题,我正在wxpython中工作,我试图通过一个按钮在read模式下打开一个管道,这个按钮通过一个事件连接到一个函数“checkpipe”。问题是,当我单击按钮时,python错误解释器会告诉我:

class fenetre(wx.Frame): #on va creer une nouvelle classe pour l'interface
    def __init__(self, parent, id): #constructeur
        filecontent = ""
        wx.Frame.__init__(self, parent, id, 'Solution 1 ---> Destinataire', size = (640,480))
        panel = wx.Panel(self)
        verifybutton = wx.Button(panel,label = "Verifier", pos = (320,10), size = (80,30))
        self.currentDirectory = os.getcwd() #trouver le chemin du dossier dans lequel on se trouve
        self.Centre() #faire apparaitre la fenetre au centre
        textprocessid = wx.StaticText(panel, -1, monid, pos = (400, 213))
        self.Bind(wx.EVT_BUTTON, self.checkpipe, verifybutton)


    def alertMessagePipeEmpty(self):
        dialog = wx.MessageDialog(self, "Rien recu. Veuillez essayer plus tard","Erreur", wx.OK|wx.ICON_ERROR)
        result = dialog.ShowModal()
        dialog.Destroy()

    def closewindow(self, event):
        self.Destroy()

    def checkpipe(self,names = None):
        if not os.path.exists(fifoname):
            os.mkfifo(fifoname)
        pipein = open(fifoname, 'r') 
        contenu = pipein.read()
        if contenu == "":
            self.alertMessagePipeEmpty()
        else:
            dialog = wx.MessageDialog(self, "Vous avez un fichier a recevoir. Voulez-vous le sauvegarder","Fichier recu", wx.YES_DEFAULT|wx.ICON_ERROR)
            result = dialog.ShowModal()
            dialog.Destroy()
            if result == wx.ID_YES:
                dlg = wx.FileDialog(
                self, message="Sauvegardez le fichier",
                defaultDir=self.currentDirectory,
                defaultFile="",
                wildcard=wildcard,
                style=wx.SAVE | wx.CHANGE_DIR
                )
                if dlg.ShowModal() == wx.ID_OK:
                    paths = dlg.GetPaths()
                    pathcomplet = ""
                    for path in paths:
                        pathcomplet = pathcomplet + path
                dlg.Destroy()
                fd2 = open(pathcomplet,'w')
                fd2.write(contenu)
                os.unlink(fifoname)

if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = fenetre(parent = None, id = -1)
    frame.Show()
    app.MainLoop()

TypeError:checkpipe()只接受1个参数(给定2个)

我什么都试过了,我猜是因为我错过了一些愚蠢的东西,但我似乎无法理解。任何帮助都将不胜感激。在


Tags: selfidifosdef按钮parentdialog

热门问题