簡體   English   中英

關於python中的開關的一些問題

[英]Some questions about switches in python

這是我在StackOverflow的第一個問題,所以如果沒有一些信息或者我錯過了一些重要的信息,請耐心等待,但無論如何我會盡我所能:)

最近我開始用Python2.7編寫代碼,所以我不太擅長它。 在玩PyGtk,PyGObject,Glade等時,我發現了一些特別關於開關的東西(沒有嘗試過任何其他小部件,所以我不知道它是否發生在其他地方。很可能它沒有,我希望... )

我用一個“窗口”和一個使用Glade的“開關”創建了一個非常基本的GUI

我的目標是在用戶嘗試激活它之后停用開關,如果之前提出了一些例外,例如:

  • 激活它 - > *找到錯誤 - > *取消激活它

我做了一些代碼,過了一會兒,我注意到這段代碼創建了一個類似循環的塊,之后阻止了GUI的窗口:

builder = Gtk.Builder()
window1 = builder.get_object('window')
switchie = builder.get_object('switchie')

switchie.set_active(False)

def Hi(switch, active):
    print switchie.get_active()
    switchie.set_active(not switchie.get_active())


switchie.connect("""notify::active""", Hi)

window1.set_position(Gtk.WindowPosition.CENTER)
window1.connect("delete-event", Gtk.main_quit)
window1.show_all()

如果我是對的,只要“switchie”被點擊,“switchie.connect”就會將“switchie”對象與“Hi”func鏈接起來。

但如果我執行此操作並嘗試打開開關,GUI將掛起。 我試圖通過腳本和命令行執行此操作並添加“打印開關狀態”,從而產生無限循環(True&False)

我嘗試了許多其他功能,但他們都無法解決這個問題。 事實上,這是我所有其他功能的“本質”。

為什么會這樣?

循環在哪里?

我錯了嗎?

感謝幫助!

(如果你需要查看其余的錯誤功能,請問他們,但我不認為他們會幫助......)

你想像這樣連接開關:

switchie.connect("""activate""", Hi)

這只會在每次點擊時被調用一次 你所做的是在它發生變化之后連接到信號,所以它不斷變化,永遠不會追趕。 你也想改變

def Hi(switch, active):

def Hi(switch, active = None):

用於鍵盤支持。

暫無
暫無

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

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