在执行长操作时锁定GTK中的小部件,但允许重定位

2024-09-29 01:21:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用GTK2(技术上是pyGTK)编写一个应用程序,并将执行一些长时间的操作。在

如果我在主线程中执行长操作(这不是一个好主意),应用程序将变得无响应。在

其中理想的部分是阻止用户修改文本输入小部件,但不希望的部分是窗口不会重新绘制自己。在

有别的办法吗?在


Tags: 用户文本应用程序部件绘制主线技术主意
1条回答
网友
1楼 · 发布于 2024-09-29 01:21:47

如果GUI在昂贵的过程中不需要用户交互,那么就没有理由不能在主线程中。您仍然可以在循环中手动更新UI(重新绘制、处理窗口移动/调整大小等)

  1. 通过将小部件的"sensitive"属性设置为False来禁用它。widget.set_sensitive(False)
  2. 在处理循环的每次迭代(或每次niteralion)期间,用while gtk.events_pending(): gtk.main_iteration()更新UI。在

如果您打算使用线程,那么ergosys的注释以及PyGTK F.A.Q.的链接应该会有所帮助。您还应该阅读GTK+参考文档中的Threads。在

相关问题 更多 >