Python Tkinter 旋转窗口,向右转
有人用Python写了一个非常简单的“画图”程序,我想对它做一些修改。我有个问题,就是怎么在这个程序里实现一个旋转功能?我希望能够把程序显示的窗口向右旋转90度。这可能吗?另外,能不能实现一个功能,把窗口的边框去掉?(我说的是图形用户界面的窗口)。
from Tkinter import *
"""paint.py: not exactly a paint program.. just a smooth line drawing demo."""
b1 = "up"
xold, yold = None, None
def main():
root = Tk()
drawing_area = Canvas(root)
drawing_area.pack()
drawing_area.bind("<Motion>", motion)
drawing_area.bind("<ButtonPress-1>", b1down)
drawing_area.bind("<ButtonRelease-1>", b1up)
root.mainloop()
def b1down(event):
global b1
b1 = "down" # you only want to draw when the button is down
# because "Motion" events happen -all the time-
def b1up(event):
global b1, xold, yold
b1 = "up"
xold = None # reset the line when you let go of the button
yold = None
def motion(event):
if b1 == "down":
global xold, yold
if xold is not None and yold is not None:
event.widget.create_line(xold,yold,event.x,event.y,smooth=TRUE)
# here's where you draw it. smooth. neat.
xold = event.x
yold = event.y
if __name__ == "__main__":
main()
3 个回答
1
你为什么想要旋转窗口呢?是因为形状的问题吗?如果是这样的话,你可以通过调整画布的宽度和高度来让它看起来像是旋转过一样,这可以在创建画布的时候设置,或者在创建之后用配置来调整。
如果你想去掉边框(还有标题栏),可以使用下面的代码:
root.overrideredirect(True)
把这段代码放在你的 main()
函数里。
1
把你的屏幕“旋转”一下,就是把屏幕的不同边当作顶部来用,这个操作需要操作系统来完成。比如在Windows 7上,你可以右键点击屏幕,选择“分辨率”,然后选择“方向”。这里有几个选项:横屏(正常),竖屏(左边的边当作顶部),倒横屏和倒竖屏。即使屏幕没有实际旋转,这些选项也可以使用——不过这样有点奇怪,因为鼠标的移动是基于屏幕已经旋转的假设来进行的。
2
解决办法就是在Linux系统中旋转屏幕。我是通过下面这个命令来实现的:
xrandr --output HDMI1 --rotate right