【Python】【整理】廖雪峯Python教程代碼整理—— 16、圖形界面

16 圖形界面

Tkinter

編寫一個最簡單的窗口:

from tkinter import *

class Application(Frame):
    def __init__(self, master = None):
        Frame.__init__(self, master)
        self.pack()
        self.createWidgets()

    def createWidgets(self):
        self.helloLabel = Label(self, text = 'Hello,world!')
        self.helloLabel.pack()
        self.quitButton = Button(self, text = 'Quit', command=self.quit)
        self.quitButton.pack()

app = Application()
app.master.title('Hello World')
app.mainloop()

在這裏插入圖片描述

輸入文本

from tkinter import *
import tkinter.messagebox as messagebox

class Application(Frame):
    def __init__(self, master = None):
        Frame.__init__(self, master)
        self.pack()
        self.createWidgets()

    def createWidgets(self):
        # self.helloLabel = Label(self, text = 'Hello,world!')
        # self.helloLabel.pack()
        # self.quitButton = Button(self, text = 'Quit', command=self.quit)
        # self.quitButton.pack()
        self.nameInput = Entry(self)
        self.nameInput.pack()
        self.alertButton = Button(self, text = 'Hello', command=self.hello)
        self.alertButton.pack()
    def hello(self):
        name = self.nameInput.get() or 'world'
        messagebox.showinfo('Message', 'Hello,%s' % name)

app = Application()
app.master.title('Hello World')
app.mainloop()

在這裏插入圖片描述在這裏插入圖片描述

16.1 海龜繪圖

繪製一個長方形:

# 導入turtle包的所有內容:
from turtle import *

# 設置筆刷寬度:
width(4)

# 前進:
forward(200)
# 右轉90度:
right(90)

# 筆刷顏色:
pencolor('red')
forward(100)
right(90)

pencolor('green')
forward(200)
right(90)

pencolor('blue')
forward(100)
right(90)

# 調用done()使得窗口等待被關閉,否則將立刻關閉窗口:
done()

在這裏插入圖片描述繪製5個五角星:

from turtle import *

def drawStar(x, y):
    pu()
    goto(x, y)
    pd()
    # set heading: 0
    seth(0)
    for i in range(5):
        fd(40)
        rt(144)

for x in range(0, 250, 50):
    drawStar(x, 0)

done()

繪製分形樹:

from turtle import *

# 設置色彩模式是RGB:
colormode(255)

lt(90)

lv = 14
l = 120
s = 45

width(lv)

# 初始化RGB顏色:
r = 0
g = 0
b = 0
pencolor(r, g, b)

penup()
bk(l)
pendown()
fd(l)

def draw_tree(l, level):
    global r, g, b
    # save the current pen width
    w = width()

    # narrow the pen width
    width(w * 3.0 / 4.0)
    # set color:
    r = r + 1
    g = g + 2
    b = b + 3
    pencolor(r % 200, g % 200, b % 200)

    l = 3.0 / 4.0 * l

    lt(s)
    fd(l)

    if level < lv:
        draw_tree(l, level + 1)
    bk(l)
    rt(2 * s)
    fd(l)

    if level < lv:
        draw_tree(l, level + 1)
    bk(l)
    lt(s)

    # restore the previous pen width
    width(w)

speed("fastest")

draw_tree(l, 4)

done()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章