调试GUI应用程序(尤其是Python)的最佳方法?

调试GUI应用程序(尤其是Python)的最佳方法?,python,debugging,user-interface,Python,Debugging,User Interface,因此,我正在尝试调试这段源代码(用Python编写),它没有GUI(,我试图找出当我点击某些东西时触发的代码/事件。我试图在我认为会触发的地方设置断点,有时我会发现我错了,而且似乎从来没有遇到过我想要的断点 有没有人对GUI调试和找出某些事件(尤其是Python中的事件)触发的内容有什么建议?将print语句放在不同的函数(或事件处理程序)中如何打印函数的名称,然后是函数接收到的参数?这应该可以清楚地说明在使用GUI时发生了什么。我通常将print包装在用于此详细输出的函数中,例如: def v

因此,我正在尝试调试这段源代码(用Python编写),它没有GUI(,我试图找出当我点击某些东西时触发的代码/事件。我试图在我认为会触发的地方设置断点,有时我会发现我错了,而且似乎从来没有遇到过我想要的断点


有没有人对GUI调试和找出某些事件(尤其是Python中的事件)触发的内容有什么建议?

将print语句放在不同的函数(或事件处理程序)中如何打印函数的名称,然后是函数接收到的参数?这应该可以清楚地说明在使用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
来打开和关闭详细输出,而不是删除所有打印语句。

有一个著名的基于CLI的笑话程序,名为。它显示一个弹出窗口(GUI)-带有消息的奶牛图片。您需要先在PC上安装xcowsay,因为它非常小

使用此oneliner,而不是打印,然后在终端中搜索邮件

# Example
import subprocess; subprocess.Popen(['xcowsay', 'your message here', '-t 1'])

# General syntax
import subprocess; subprocess.Popen(['xcowsay', string1, string2, string3 ..., '-t 1'])

# For printing objects, cast them to str first
# '-t 1' is for displaying the popup for one second, you can change it.
我为什么使用它:

  • 简单和短-一行
  • 适用于大多数系统-Linux、Mac和Windows
  • 异步运行-不会干扰应用程序的执行
  • 支持多行字符串
  • Unicode支持-emojis将起作用
  • 当我开始使用Python时,我发现了这一点,并且不知道
    pdb
    等等。 事实上,这个程序可以GUIfy您的整个CLI


    我对你的问题没有答案,但我刚刚浏览了reddit.com/r/learnpython,看到一篇帖子,其中有人为他的Udemy课程提供免费的促销代码,我的课程是用Python开发GUI应用程序:我现在就是这么做的。我希望有一种更有效的方法。