Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 在wx.textctrl wigdet中显示另一个wx.textctrl中输入的python代码的当前输出_Python 2.7_Wxpython_Exec - Fatal编程技术网

Python 2.7 在wx.textctrl wigdet中显示另一个wx.textctrl中输入的python代码的当前输出

Python 2.7 在wx.textctrl wigdet中显示另一个wx.textctrl中输入的python代码的当前输出,python-2.7,wxpython,exec,Python 2.7,Wxpython,Exec,我在wxApp中使用了两个wx.TextCtrl小部件。 第一个用于按应用程序用户提供Python代码,例如: from time import sleep for i in range(4): print i sleep(4) 第二个用于显示输出。 要处理用户代码,我使用EXEC。 但我在动态显示输出方面有问题 当前,输出显示在第二个wx.TextCtrl小部件中,但在处理完整个代码后(16秒后) 我想在上面的代码中每4秒显示一次用户的代码输出。 怎么做 我试

我在wxApp中使用了两个wx.TextCtrl小部件。
第一个用于按应用程序用户提供Python代码,例如:

from time import sleep  
for i in range(4):  
    print i  
    sleep(4)  
第二个用于显示输出。
要处理用户代码,我使用EXEC。
但我在动态显示输出方面有问题

当前,输出显示在第二个wx.TextCtrl小部件中,但在处理完整个代码后(16秒后)

我想在上面的代码中每4秒显示一次用户的代码输出。 怎么做


我试图使用线程,但在线程的情况下使用exec会出现问题

time.sleep将阻止GUI的主循环,这就是为什么您看不到任何输出。如果你想走这条路,你必须把它放到一个单独的线程中。否则,您可以使用wx.Timer

以下是一个教程:

不过,我认为您不应该使用Python的exec命令。这可能导致代码注入问题。相反,您应该考虑使用子过程模块。