1

シリアル デバイスと通信するための GUI を作成しようとしています。このために、Tkinter を使用しています。私の問題は、スクリプトを実行するたびに estCon 関数とメインループのみが実行されるため、GUI が開始されないことです。メイン ループの後に estCon 関数の定義を配置すると、estCon 関数が見つからなかったと表示されます。

def estCon():
    # establish connection
    while True:
        try:
            ser = serial.Serial(port, baud, bytesize)
            print('Connected.')
            break
        except serial.SerialException:
            print('waiting for device ' + port + ' to be available.') 
            time.sleep(3)

    starttime = time.time()
    outfile = open(filename, 'a')
    doprint = True    

root = Tk()

estConButton = Button(root, text="Establish serial connection",
                      command=estCon())
estConButton.pack()

root.mainLoop()
4

1 に答える 1

3

この行を変更する必要があります:

estConButton = Button(root, text="Establish serial connection", command=estCon())

に:

estConButton = Button(root, text="Establish serial connection", command=estCon)

括弧がないことに注意してください()。基本的に、実際の呼び出しではなく、ボタンを押したときに呼び出される関数への参照を渡す必要があります。

于 2013-04-06T00:48:24.743 に答える