Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在python curses modu中删除子窗口
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个使用子窗口的curses应用程序,但我似乎无法删除它们。在</p> <p>例如,此代码不起作用:</p> <pre><code>import curses def fill(window, ch): y, x = window.getmaxyx() s = ch * (x - 1) for line in range(y): window.addstr(line, 0, s) def main(stdscr): fill(stdscr, 'M') stdscr.refresh() stdscr.getch() subwin = stdscr.subwin(1, 28, 20, 13) fill(subwin, 'J') subwin.refresh() subwin.getch() del subwin stdscr.touchwin() stdscr.refresh() stdscr.getch() curses.wrapper(main) </code></pre> <p>当您运行这段代码时,屏幕上会填充“M”,然后当您按下某个键时,就会创建一个子窗口并用“J”填充。最后,当您再次按下某个键时,代码会删除子窗口并完全重画屏幕。然而,那些J仍然存在。在</p> <p>经过一些实验,我发现调用stdscr的clear()方法将使子窗口继续运行,但我希望恢复背景的原样,而不消隐和重写。 有人知道怎么做吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>这个代码有两个问题。在</p> <p>首先,正如前一篇文章所指出的,子窗口与父窗口共享一个缓冲区,因此如果您想要一个完全独立的窗口,就应该使用<code>curses.newwin()</code>。在</p> <p>第二,使用<code>del</code>删除窗口是有问题的,因为它依赖于引用计数/垃圾回收才能正常工作。(首先,您必须删除对窗口的所有引用才能正常工作)。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何用if条件捕获函数返回值
3 回答
如何用if语句判断列表中是否存在该索引?
4 回答
如何用if语句向量化numpy数组中的最大值?
7 回答
如何用IF语句有条件地保存零碎的结果?
4 回答
如何用if语句测试异常对象?
10 回答
如何用IF语句编写二元函数
4 回答
如何用igraph在python中创建顶点权重的图?
2 回答
如何用ijson和python解析json
8 回答
如何用iloc求子矩阵
8 回答
如何用Imagemagick或PIL绘制高质量的图像笔划(边框)?
10 回答
如何用importlib在python中动态导入模块?
1 回答
如何用import语句重写python内置函数?
2 回答
如何用imshow混合裁剪的强度并显示正确的混合强度?
2 回答
如何用in dictionary解析havin dictionary中的json文件
2 回答
如何用in-Django URL替换%20
7 回答
如何用in\op正确构造查询
3 回答
如何用inbuild对象替换文件
6 回答
如何用inheritan类实现flask restful
10 回答
如何用intersphinx正确地编写对外部文档的交叉引用?
1 回答
如何用int修改LpVariable?
8 回答