Hello, world!

这篇博客介绍了使用Python的Turtle模块创建一个交互式的绘图程序,用户点击屏幕会在不同位置随机显示20种不同语言的'Hello World'。程序实现了颜色随机、字体大小变化及清屏功能,通过监听鼠标事件和键盘事件来控制绘制和清除文字。
摘要由CSDN通过智能技术生成

这可不是一个普通的hello world,先上图:

写代码时间:

先导入模块:

import turtle as t
import random as r

 再声明一些常用的变量、设置:

t.colormode(255)
t.bgcolor(0, 0, 0)
t.tracer(False)
x = t.getcanvas().winfo_width() / 2
y = t.getcanvas().winfo_height() / 2
t.setup(1200, 800)
flag = False

然后是写字:

def language(a, b):
    lan = ['你好世界', 'Hello world', 'مرحبا العالم', 'สวัสดีโลก', 'Hallo Welt', 'Здравствуй мир', 'Bonjour, monde.',
           '안녕 세계', 'こんにちは、世界', 'Ciao mondo', 'Hej, verden.', 'Hallo, wereld.', 'ສະບາຍດີໂລກ', 'Hej, världen.',
           'Nyob zoo ntiaj teb', 'Saluton mondo', 'Καὶ οὐ γράφει.', 'Bonjou mond', 'Hello warld', 'world']
    if flag:
        t.pu()
        t.goto(a, b)
        t.pd()
    else:
        t.pu()
        t.goto(1200, 800)
        t.pd()
    t.pencolor(r.randint(0, 255), r.randint(0, 255), r.randint(0, 255))
    t.write(r.choice(lan), font=('楷体', r.randint(5, 30), 'normal'))

这可是我在百度翻译上翻译的20种语言。

再调用:

def draw_text(event):
    language(event.x - x - 120, y - event.y)

因为要点一下屏幕才可以画,所以:

def change(x, y):
    global flag
    flag = not flag

然后是清屏:

def clear():
    t.clear()

再监听鼠标事件,调用draw_text函数并实现空格清屏:

t.onscreenclick(change, btn=1)
cv = t.getcanvas()
cv.bind('<Motion>', draw_text)

t.onkeypress(clear, 'space')
t.listen()

然后是最关键的一步:

t.update()
t.done()

整体:

"""
Time:2021.8.14 6:22:19
Author:@Solomon-python
"""
import turtle as t
import random as r

t.colormode(255)
t.bgcolor(0, 0, 0)
t.tracer(False)
x = t.getcanvas().winfo_width() / 2
y = t.getcanvas().winfo_height() / 2
t.setup(1200, 800)
flag = False


def language(a, b):
    lan = ['你好世界', 'Hello world', 'مرحبا العالم', 'สวัสดีโลก', 'Hallo Welt', 'Здравствуй мир', 'Bonjour, monde.',
           '안녕 세계', 'こんにちは、世界', 'Ciao mondo', 'Hej, verden.', 'Hallo, wereld.', 'ສະບາຍດີໂລກ', 'Hej, världen.',
           'Nyob zoo ntiaj teb', 'Saluton mondo', 'Καὶ οὐ γράφει.', 'Bonjou mond', 'Hello warld', 'world']
    if flag:
        t.pu()
        t.goto(a, b)
        t.pd()
    else:
        t.pu()
        t.goto(1200, 800)
        t.pd()
    t.pencolor(r.randint(0, 255), r.randint(0, 255), r.randint(0, 255))
    t.write(r.choice(lan), font=('楷体', r.randint(5, 30), 'normal'))


def draw_text(event):
    language(event.x - x - 120, y - event.y)


def change(x, y):
    global flag
    flag = not flag


def clear():
    t.clear()


t.onscreenclick(change, btn=1)
cv = t.getcanvas()
cv.bind('<Motion>', draw_text)

t.onkeypress(clear, 'space')
t.listen()

t.update()
t.done()

对了,你们觉得python里哪个gui工具包最好用呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值