1

初めてのポスターですが、登録する前にサイトが非常に役立つことがわかりました。Python 2.7 (Windows7) で Tkinter を使用すると問題が発生します: コード (全体が大きいため切り捨てました) は次のようになります。

-------------------------------------------------------
CODE:

    #set up stuff, importing variables, etc, then we have:
class App:
     global RXSerial
     RXSerial=''
#The following lines define the topFrame, lays out the widgets.
    def __init__(self, master):
        topFrame = Frame(master)
        topFrame.pack()

        middleFrame = Frame(master)
        middleFrame.pack()

#--------------defining state variables------------
        self.inputConsole = Text(middleFrame)
        self.inputConsole.insert(INSERT,"Data recieved from Serial:")
        self.inputConsole.config(width=100,height=20)
        self.inputConsole.pack(side=LEFT,padx=20,pady=20)

#blah blah blah, insert a bunch of stuff (buttons etc.) here:


#The following lines define the functions to be called when the buttons are pressed.
    def engineFire(self,engineUse,pwm): 
       RXSerial='this should pop up in the text called inputConsole'
       print RXSerial
       self.inputConsole.insert(INSERT, RXSerial)
---------------------------------------------------

ええ、基本的にRXSerialは文字列です(動作していることを確認しました。ボタンで呼び出されたときにRXSerialの印刷行が正常に印刷されます。問題は、self.inputConsole.insert(INSERT、RXSerial)行が機能していないことです。誰か助けてください?私はたくさんのものの組み合わせを試しましたが、うまくいかないようです.ありがとう.

4

1 に答える 1

3

別のスレッドからテキストを挿入しようとすると、機能しない場合があります。また、ある時点でテキストウィジェットを無効状態に設定した場合、挿入は失敗します。その場合(ウィジェットが無効になっている場合)、一時的に状態を「通常」に設定すると問題が解決します。

より多くの情報がなければ、確実に言うことは不可能です。

于 2012-09-05T11:15:21.783 に答える