Python GUI with Tkinter (from youtube) 在youtube上能找到很多编程视频...

Python GUI with Tkinter - 1 - Introduction
以上链接是一个python tkinter视频系列的第一讲的链接.虽然英语不好,但是,程序还是看得懂的(照着做就可以了),所以找不到中文视频时看下这些英语视频也是可以的.

以下是我在看视频过程中的练习, 可以在python2.7下运行.

001: hello,world:

from Tkinter import Label, Tk

root = Tk()
thelabel = Label(root, text="This is too easy")
thelabel.pack()
root.mainloop()

002: Button pack布局

from Tkinter import *

root = Tk()

topFrame = Frame(root)
topFrame.pack()
bottomFrame = Frame(root)
bottomFrame.pack(side=BOTTOM)

button1 = Button(topFrame, text="Button 1", fg="red")
button2 = Button(topFrame, text="Button 2", fg="blue")
button3 = Button(topFrame, text="Button 3", fg="green")
button4 = Button(bottomFrame, text="Button 4", fg="purple")

button1.pack(side=LEFT)
button2.pack(side=LEFT)
button3.pack(side=LEFT)
button4.pack(side=BOTTOM)

root.mainloop()

003: Label和pack布局

from Tkinter import *

root = Tk()

one = Label(root, text="one", bg="red", fg="white")
two = Label(root, text="two", bg="green", fg="black")
three = Label(root, text="three", bg="blue", fg="white")

one.pack()
two.pack(fill=X)
three.pack(side=LEFT, fill=Y)

root.mainloop()

004: grid布局.

from Tkinter import *

root = Tk()

label_1 = Label(root, text="Name")
label_2 = Label(root, text="Password")
entry_1 = Entry(root)
entry_2 = Entry(root)

label_1.grid(row=0)
label_2.grid(row=1)
entry_1.grid(row=0, column=1)
entry_2.grid(row=1, column=1)

root.mainloop()

005: grid布局

from Tkinter import *

root = Tk()

label_1 = Label(root, text="Name")
label_2 = Label(root, text="Password")
entry_1 = Entry(root)
entry_2 = Entry(root)

label_1.grid(row=0, sticky=E)
label_2.grid(row=1, sticky=E)
entry_1.grid(row=0, column=1)
entry_2.grid(row=1, column=1)

c = Checkbutton(root, text="Keep me logged in")
c.grid(columnspan=2)

root.mainloop()

006: Button和事件

from Tkinter import *

root = Tk()

def printName():
    print("Chello my name is Bucky!")

button_1 = Button(root, text="Print my name", command=printName)
button_1.pack()

root.mainloop()

007:  绑定事件: 左键,中键,右键

#coding:utf8
from Tkinter import *

root = Tk()

def printName(event):
    print("Chello my name is Bucky!")

button_1 = Button(root, text="Print my name")
‘‘‘
<Button-1> 鼠标左键
<Button-2> 鼠标中键
<Button-3> 鼠标右键
‘‘‘
button_1.bind("<Button-1>", printName)
button_1.pack()

root.mainloop()

008:   绑定事件: 左键,中键,右键

from Tkinter import *

root = Tk()

def leftClick(event):
    print "left"

def middleClick(event):
    print "middle"

def rightClick(event):
    print "right"

frame = Frame(root, width=300, height=250)
frame.bind("<Button-1>", leftClick)
frame.bind("<Button-2>", middleClick)
frame.bind("<Button-3>", rightClick)
frame.pack()

root.mainloop()

009:  Python GUI with Tkinter-8-Using Classes

# -*- coding:utf-8 -*-
‘‘‘
Python GUI with Tkinter-8-Using Classes
‘‘‘
from Tkinter import *

class BuckysButtons:
    def __init__(self, master):
        frame = Frame(master)
        frame.pack()

        self.printButton = Button(frame, text="Print Message", command=self.printMessage)
        self.printButton.pack(side=LEFT)

        self.quitButton = Button(frame, text="Quit", command=frame.quit)
        self.quitButton.pack(side=LEFT)

    def printMessage(self):
        print "Wow, this actually worked!"

root = Tk()
b = BuckysButtons(root)
root.mainloop()

010: Python GUI with Tkinter-9-Creating Drop Down Menus

# -*- coding:utf-8 -*-
‘‘‘
Python GUI with Tkinter-9-Creating Drop Down Menus
‘‘‘
from Tkinter import *

def doNothing():
    print("ok ok I won‘t...")

root = Tk()

menu = Menu(root)
root.config(menu=menu)

subMenu = Menu(menu)
menu.add_cascade(label="File", menu=subMenu)
subMenu.add_command(label="New Project...", command=doNothing)
subMenu.add_command(label="New...", command=doNothing)
subMenu.add_separator()
subMenu.add_command(label="Exit", command=doNothing)

editMenu = Menu(menu)
menu.add_cascade(label="Edit", menu=editMenu)
editMenu.add_command(label="Redo", command=doNothing)

root.mainloop()

011: Python GUI with Tkinter-10-Creating a Toolbar

# -*- coding:utf-8 -*-
‘‘‘
Python GUI with Tkinter-10-Creating a Toolbar
‘‘‘
from Tkinter import *

def doNothing():
    print("ok ok I won‘t...")

root = Tk()

# ***** Main Menu *****
menu = Menu(root)
root.config(menu=menu)

subMenu = Menu(menu)
menu.add_cascade(label="File", menu=subMenu)
subMenu.add_command(label="New Project...", command=doNothing)
subMenu.add_command(label="New...", command=doNothing)
subMenu.add_separator()
subMenu.add_command(label="Exit", command=doNothing)

editMenu = Menu(menu)
menu.add_cascade(label="Edit", menu=editMenu)
editMenu.add_command(label="Redo", command=doNothing)

# ***** Toolbar *****

toolbar = Frame(root, bg="blue")

insertBtn = Button(toolbar, text="Insert Image", command=doNothing)
insertBtn.pack(side=LEFT, padx=2, pady=2)
printBtn = Button(toolbar, text="Print", command=doNothing)
printBtn.pack(side=LEFT, padx=2, pady=2)

toolbar.pack(side=TOP, fill=X)

root.mainloop()

012: Python GUI with Tkinter-11-Adding the Status Bar

# -*- coding:utf-8 -*-
‘‘‘
Python GUI with Tkinter-11-Adding the Status Bar
‘‘‘
from Tkinter import *

def doNothing():
    print("ok ok I won‘t...")

root = Tk()

# ***** Main Menu *****
menu = Menu(root)
root.config(menu=menu)

subMenu = Menu(menu)
menu.add_cascade(label="File", menu=subMenu)
subMenu.add_command(label="New Project...", command=doNothing)
subMenu.add_command(label="New...", command=doNothing)
subMenu.add_separator()
subMenu.add_command(label="Exit", command=doNothing)

editMenu = Menu(menu)
menu.add_cascade(label="Edit", menu=editMenu)
editMenu.add_command(label="Redo", command=doNothing)

# ***** Toolbar *****

toolbar = Frame(root, bg="blue")

insertBtn = Button(toolbar, text="Insert Image", command=doNothing)
insertBtn.pack(side=LEFT, padx=2, pady=2)
printBtn = Button(toolbar, text="Print", command=doNothing)
printBtn.pack(side=LEFT, padx=2, pady=2)

toolbar.pack(side=TOP, fill=X)

# ***** Status Bar *****

status = Label(root, text="Preparing to do nothing...", bd=1, relief=SUNKEN, anchor=W)
status.pack(side=BOTTOM, fill=X)

root.mainloop()

013: Python GUI with Tkinter-12-Messagebox

# -*- coding:utf-8 -*-
‘‘‘
Python GUI with Tkinter-12-Messagebox
How to create a message box with tkinter?
http://stackoverflow.com/questions/1052420/how-to-create-a-message-box-with-tkinter
‘‘‘
from Tkinter import *
import tkMessageBox

root = Tk()
tkMessageBox.showinfo("Window Title", "Monkeys can live up to 300 years.")
msg = tkMessageBox

answer = msg.askquestion("Question1", "Do you like silly faces?")

if answer == ‘yes‘:
    print(‘ 8===D~‘)

root.mainloop()

014: Python GUI with Tkinter-13-Shapes and Graphics

# -*- coding:utf-8 -*-
‘‘‘
Python GUI with Tkinter-13-Shapes and Graphics
‘‘‘
from Tkinter import *

root = Tk()

canvas = Canvas(root, width=200, height=100)
canvas.pack()

blackLine = canvas.create_line(0, 0, 200, 50)
redLine = canvas.create_line(0, 100, 200, 50, fill="red")
greenBox = canvas.create_rectangle(25, 25, 130, 60, fill="green")

# canvas.delete(redLine)
canvas.delete(ALL)

root.mainloop()

015: Python GUI with Tkinter-14-Images and Icons

# -*- coding:utf-8 -*-
‘‘‘
Python GUI with Tkinter-14-Images and Icons
(1.1)在这个例子中遇到问题"_tkinter.TclError: couldn‘t recognize data in image file"
(1.2)http://stackoverflow.com/questions/27599311/tkinter-photoimage-doesnt-not-support-png-image
(1.3)http://effbot.org/tkinterbook/photoimage.htm
(1.4)解决办法参考上面的链接. 引入 "from PIL import Image, ImageTk"
---------------
(2)中文目录要加  u"..."
‘‘‘
from Tkinter import *
from PIL import Image, ImageTk

root = Tk()

imgList = ["image001.png", "kaola.jpg", u"考拉.jpg"]
print(imgList[-1])
image = Image.open(imgList[-1])
# photo = PhotoImage(file="image001.png")
photo = ImageTk.PhotoImage(image)

label = Label(root, image=photo)
label.pack()

root.mainloop()

  

时间: 2024-08-04 04:10:04

Python GUI with Tkinter (from youtube) 在youtube上能找到很多编程视频...的相关文章

Python GUI programming(tkinter)

python3之前的版本用Tkinter,之后用的是tkinter 最简单的使用Tkinter的代码,首先要Tk()建立一个窗口,然后加进各种Widget from Tkinter import * window = Tk() label = Label(window, text = "Welcome to Python") button = Button(window, text = "Click me") label.pack() button.pack() w

python GUI学习——Tkinter

支持python的常见GUI工具包: Tkinter 使用Tk平台 很容易得到 半标准 wxpython 基于wxWindows.跨平台越来越流行 Python Win 只能在Windows上使用 使用了本机的Windows GUI功能 Java Swing 只能用于Jython 使用本机的Java GUI PyGTK 使用GTK平台 在linux上很流行 PyQt 使用QT平台 跨平台 Tkinter学习 介绍以下几个控件的用法 Label Frame Entry Text Button Li

Python:GUI之tkinter学习笔记1控件的介绍及使用

相关内容: tkinter的使用 1.模块的导入 2.使用 3.控件介绍 Tk Button Label Frame Toplevel Menu Menubutton Canvas Entry Message Text Listbox Checkbutton Radiobutton Scale Scrollbar 首发时间:2018-03-04 16:39 Python的GUI各有各特点. 由于只是轻微涉及GUI开发,所以就以轻量级的tkinter来学习. tkinter的使用: 1.模块的导入

python gui之tkinter事件处理

事件一览表 事件 代码 备注 鼠标左键单击按下 1/Button-1/ButtonPress-1   鼠标左键单击松开 ButtonRelease-1   鼠标右键单击 3   鼠标左键双击 Double-1/Double-Button-1   鼠标右键双击 Double-3   鼠标滚轮单击 2   鼠标滚轮双击 Double-2   鼠标移动 B1-Motion   鼠标移动到区域 Enter   鼠标离开区域 Leave   获得键盘焦点 FocusIn   失去键盘焦点 FocusOut

python gui之tkinter语法杂记

随手写的,后续整理. 1. Entry如何调用父类的__init__? 以下错,原因后续分析 super(Your_Entry_Class, self).__init__(self,**kw) 报错:TypeError: must be type, not instance . 莫名其妙 谷歌了下,解决方案如下 apply(Entry.__init__, (self, parent), **kw) 2. 如何将ttk treeview 的某一行转入编辑状态 事实上,(python 3)treev

Python:GUI之tkinter学习笔记2界面布局显示

相关内容: pack 介绍 常用参数 使用情况 常用函数 grid 介绍 常用参数 使用情况 常用函数 place 介绍 常用参数 使用情况 常用函数 首发时间:2018-03-04 14:20 pack: 介绍: pack几何管理器按行或列打包小部件. 可以使用填充fill,展开expand和靠边side等选项来控制此几何体管理器. pack的排放控件的形式就像将一个个控件按大小从上到下放过去 在窗口不设定大小的而使用pack进行布局的情况下,窗口默认大小为刚好包裹所有控件的大小 默认情况下添

python gui之tkinter界面设计pythonic设计

ui的设计,控件id的记录是一件比较繁琐的事情. 此外,赋值和读取数据也比较繁琐,非常不pythonic. 有没有神马办法优雅一点呢?life is short. 鉴于控件有name属性,通过dir(Entry_obj)得知,存放在一个_name的属性里面.于是就有了以下代码: Entry(frame,name='your_id1').grid(row=x1,column=y1) Entry(frame,name='your_id2').grid(row=x2,column=y2) ... En

YouTube 十岁了,这十年里视频网站改变了什么?

你可能已经很久没看过它,但 YouTube 以及随后诞生的其它视频网站确实改变了世界. 2005 年 4 月 23 日,前 Paypal 员工 Jawed Karim 在一个名为 YouTube 的网站上传了一段视频"Me at the zoo".这个网站刚刚上线不久,创始人便是 Karim 和另外两位从 Paypal 离职的员工陈士骏.Chad Hurley. 又过了半个月,这段视频下才出现了第一条回复:"interesting...",来自 YouTube 的第

Python GUI - Tkinter tkMessageBox

Python GUI - Tkinter tkMessageBox: tkMessageBox模块用于显示在您的应用程序的消息框.此模块提供了一个功能,您可以用它来显示适当的消息 tkMessageBox模块用于显示在您的应用程序的消息框.此模块提供了一个功能,您可以用它来显示适当的消息. 这些功能有些是showinfo,showwarning,showerror,askquestion,askokcancel,askyesno,askretryignore. 方法: 这里是一个简单的语法来创建