所以我試圖調試這個源代碼(在Python中),我沒有寫有GUI(Kivy in particular,我試圖找出什麼代碼/事件正在觸發,當我點擊某些東西。我嘗試將斷點放在我認爲會被觸發的位置,但有時我發現我錯了,並且我想要的斷點似乎不會遇到。調試GUI應用程序的最佳方法(特別是在Python中)?
任何人都有任何建議用於GUI調試,並找出什麼是由某些事件觸發的,特別是在Python中?
所以我試圖調試這個源代碼(在Python中),我沒有寫有GUI(Kivy in particular,我試圖找出什麼代碼/事件正在觸發,當我點擊某些東西。我嘗試將斷點放在我認爲會被觸發的位置,但有時我發現我錯了,並且我想要的斷點似乎不會遇到。調試GUI應用程序的最佳方法(特別是在Python中)?
任何人都有任何建議用於GUI調試,並找出什麼是由某些事件觸發的,特別是在Python中?
如何將打印語句放入不同的函數(或事件處理程序)中打印函數的名稱,後跟參數函數收到了嗎?這應該讓我很清楚你使用GUI時發生了什麼。我通常是在我使用的這個詳細的輸出函數包print
,如:
def verbose_print(message, *args):
if VERBOSE:
print message.format(*args)
所以現在,在我的各種功能,我可以使用這樣的功能:
def do_something(param1, param2):
verbose_print('do_something({}, {})', param1, param2)
# Do some stuff...
此外,您可以現在通過將模塊全局常量VERBOSE
設置爲True
或False
來打開和關閉詳細輸出,而不是刪除所有打印語句。
這就是我現在要做的。我希望有一個更有效的方法。 – supercheetah
我沒有回答你的問題,但我只是在瀏覽reddit.com/r/learnpython,並看到有人向他的Udemy課程提供免費促銷代碼,在Python中開發GUI應用程序:http: //www.reddit.com/r/learnpython/comments/144b9e/hey_rlearnpython_ive_started_teaching_a_course_on/ – Ecnalyr