簡體   English   中英

Python Kivy 2 按鈕 2 相同布局中的不同操作

[英]Python Kivy 2 Buttons 2 Different Actions in Same Layout

我用 python 開發語音助手,我想用 kivyy 添加基本的 gui。 我正在用 kivy 編寫基本的 gui,我想學習 kivy 框架,以便我試圖通過創建 GUI 來提高自己。 但是在這個項目中我有一個錯誤。 首先,讓我把我的代碼放在這里。

class Assistant(App):

def build(self):
    rl = RelativeLayout()



    b1 = Button(size_hint=(.2, .2),
                pos_hint={'x': 0, 'top': 1},
                text="Click For Exit!",
                color=(1,0, .15, 1))

    b2 = Button(size_hint=(.2, .2),
                pos_hint={'right': 1, 'top': 1},
                text="Run Program!",
                color=(8,1, .56, 4))


    image = Image(source="background_img.jpg")
    b2.bind(on_press=self.RunProgram)
    b1.bind(on_press=self.CloseProgram)


    textinput = TextInput(font_size=30,
                          size_hint_y=None,
                          height=100,
                          multiline=False,
                          allow_copy=True,
                          auto_indent=True)

    textinput.bind(text=self.on_text)
    textinput.bind(on_text_validate=self.on_enter)

    rl.add_widget(image)
    rl.add_widget(b1)
    rl.add_widget(textinput)
    rl.add_widget(b2)

這兩個按鈕有它們的功能。

    def CloseProgram(self, event):
        sys.exit()

    def RunProgram(self, event): 
        while True:
              jarvis.run(listen())

如您所見,我有 2 個按鈕,一個是退出程序,另一個是監聽用戶。 我也有文本輸入,用戶可以輸入一些東西來從鍵盤向助手發出命令。 但不幸的是,當我點擊“運行程序”按鈕時,當我想輸入一些東西或者如果我想點擊“退出程序”我的 GUI 停止工作之后,一切都很好。 (一切都凍結和崩潰)但在后台我的助手繼續聽用戶(我)。 我怎么解決這個問題?

在這種情況下,當我刪除 while 循環時一切正常,但是當用戶想要與助手交談時,每次都必須單擊“運行程序”按鈕。 在這里我希望用戶可以單擊按鈕或可以在程序在后台運行時鍵入文本輸入。 提前致謝。

更多信息:

我用的是windows10,python版本3.8.1

該問題使用 python線程解決。 感謝大家。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM