Python 的 GUI 开发

本文介绍了Python标准GUI库Tkinter的基础用法,包括创建窗口、按钮等组件,并演示了如何响应用户事件,还展示了菜单、工具栏等高级功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天在学习python的时候学到了python可以设计图形界面,于是就准备学习一下,tkinter是python的内置模块接口

1,什么是tkinter?

Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中. 

2,首先让我们看看一个简单的例子(Hello World)
# Hello Tkinter
from Tkinter import *
root = Tk()

label = label(root,text='Hello World')
label.pack()    #让窗口自适应组件大小并让组件显示
root.mainloop()
3,helloclass
class App:
    def __init__(self ,master):
        frame = Frame(master)
        frame.pack()

        self.button = Button(frame,text='Hello class',fg = 'red',command=frame.quit)
        self.button.pack()
        self.hiButton = Button(frame,text='say hi',command = self.say_hi)
    def say_hi(self):
        print('Hi xiaorui,Thanks')
    root = Tk()
    app  = App(root)
    root.mainloop()
4.GUI类库设计架构
widget:UI组件
WM:窗口管理
EVENT:事件(键盘鼠标事件,状态事件,管理事件)

5,config配置外观
from Tkinter import *

root = TK()

label = label(root,text='Hello World')
label.config(cursor = 'gumby')
label.config(width=80,height=10,fg='yellow',bg='dark green')
label.config(font=('times','28','bold'))

label.pack()

root.mainloop()
6.Widget style 组件外观属性
from Tkinter import *

button = Button(text='Xiaorui Button',padx = 10,pady = 10)
button.config(cursor = 'gumby')
button.config(bd = 8,felief = RAISEP)
button.config(bg = 'green',fg = 'yellow')
button.config(font = ('Helvetica',10,'bold italic'))

button.pack()
button.mainloop()
7,Event and Bindings
from Tkinter import *

root = TK()
def buttonClick():
    print 'button clicked'
button = Button(text = 'Hello',command = buttonClick)
button.pack()
root.mainloop()
8,BaseWinndow-Toplevel
from Tkinter import *

root = TK()
root.title('root window')
top = toplevel(bg = 'red')
top.title('top level')
root.mainloop()
9,菜单Menu
from Tkinter import *

def callback():
    print('called the menu')

root = TK()
menu = Menu(root)
root.config(menu = menu)
filemenu = Menu(menu)
menu.add_cascade(label = 'File',menu = filemenu)
#添加子菜单
filemenu.add_command(label = 'New' ,command = callback)
filemenu.add_command(label = 'Open',command = callback)

filemenu.add_separator()
filemenu.add_command(label = 'Exit',command = callback)
helpmenu = Menu(menu)
menu.add_cascade(label = 'Help',menu = helpmenu)
helpmenu.add_command(label = 'About..',command = callback)

root.mainloop()
10,工具栏Toolbar
from Tkinter import *
root = TK()

def callback():
    print('clicked tool bar button')

toolbar = Frame(root)

b = Button(toolbar,text = 'new',width = 6,command = callback)
b.pack(side = LEFT,padx = 2,pady = 2)
c = Button(toolbar,text = 'open',width = 6,command = callback)
c.pack(side = LEFT,padx = 2,pady = 2)
boolbar.pack(side = Top,fill = x)

root.mainloop()

11,Messagebox

from Tkinter import *
import tkMessageBox

root = TK()

def callback():
    if tkMessageBox.askyesno('Xiaorui','HI XiaoRui'):
        print('Clicked Yes')
    else print('Clicked NO')
button = Button(root,text = 'Button1',command = callback)
button.pack()
root.mainloop()
12,状态栏StatusBar
from Tkinter import *

root = TK()
status = Label(root,text = 'Ln20',bel = 1,relref = SUNKEN,anchor = W)
status.pack(side = BOTTOM,fill = x)

root.mainloop()
13,Grid布局
from Tkinter import *

root = TK()

Label(root,text = 'First').grid(row = 0)
Label(root,text = 'Second').grid(row = 1)
e1 = Entry(root)
e2 = Entry(root)

e1.grid(row = 0,column = 1)
e2.grid(row = 1,column = 1)

Button(root,text = 'OK').grid(row = 2)

root.mainloop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值