如何让 PyCharm 的 turtle 窗口总在最前

· 2022-03-28
点点滴滴 程序设计 Python

一大早,本科同学来电话说他儿子有 Python 编程问题解决不了,说是画图窗口老是在后面被遮挡,然后把代码用微信发来让我看看。
先把代码另存到本地,文件名为 d.py。

打开 Jupyter Lab

Jupyter Lab 是我最常用的 Python 编程环境,在浏览器里面就可以编程执行,非常方便。
把代码拷贝进去,执行,turtle 画图窗口出现并保持在最前,没问题。
b.gif

Anaconda PowerShell Prompt

打开 Anaconda PowerShell Prompt 命令行界面,输入 python d.py,回车,画图窗口顺利弹出在最前,没问题。
c.gif

stem86.com

Stem86 学习平台带有 Python 的编程环境,里面的 turtle 画图是直接显示的,更没问题了。
2022-03-28_12-37-30.png

Visual Studio Code

用 VS Code 打开 d.py,启动调试,发现 turtle 窗口没有在最前,需要手动切换,有问题了。
q.gif

PyCharm

使用 PyCharm 免费的社区版打开 d.py,画图窗口也没有在最前。

解决方案

之前一直用 Jupyter Lab,还没有注意到这个问题,貌似在 VS Code 和 PyCharm 软件调试时会把弹出窗口放到后面,要解决的话就得从窗口的控制入手。
网上搜索了一番,找到如下代码:

import turtle  
topwindow = turtle.Screen().getcanvas().winfo_toplevel()
topwindow.call('wm', 'attributes', '.', '-topmost', '1')
topwindow.call('wm', 'attributes', '.', '-topmost', '0')
turtle.Screen().title("我是窗口标题")  # Set the window title

OK,问题解决了。
t.gif

上面的代码可以简化如下:

# 窗口置顶
turtle.Screen().getcanvas().winfo_toplevel().attributes("-topmost", True)
# 窗口最大尺寸
turtle.Screen().getcanvas().winfo_toplevel().wm_maxsize(500,400)
# 窗口标题
turtle.Screen().getcanvas().winfo_toplevel().title("Helllooooooooo")  
# 标题的最大化按钮不可用
turtle.Screen().getcanvas().winfo_toplevel().wm_resizable(False,False) 
# 窗口透明度
turtle.Screen().getcanvas().winfo_toplevel().attributes("-alpha", 0.5)  
# 工具栏标题模式
turtle.Screen().getcanvas().winfo_toplevel().attributes("-toolwindow", False)  
# 窗口全屏模式
turtle.Screen().getcanvas().winfo_toplevel().attributes("-fullscreen",True)  
                                                       

更多使用方式参见:http://tkdocs.com/tutorial/windows.html

  • 本文作者:恩爸
  • 本文链接:https://sirit.com.cn/archives/425/
  • 版权许可:知识共享署名-相同方式共享4.0国际许可协议
  • 友情提示:本文更新于2022年08月22日,已超过223天没有更新,若内容或图片失效,请留言反馈。
  • 极简生活,每日一扔
  • 多次执行 turtle 海龟图报错:turtle.Terminator
取消回复

说点什么?
Title
打开 Jupyter Lab
Anaconda PowerShell Prompt
stem86.com
Visual Studio Code
PyCharm
解决方案
上面的代码可以简化如下:

本站已经运行0天 © 2005- 大嘴狗狗. - Typecho & Moricolor - 粤ICP备18101800号 - 粤公网安备44030402005553号