• 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()
    

      

  • 相关阅读:
    一卦,测一年运气
    测一下我心中想的事
    一卦,测一下我心里想的事
    这一卦,学到了不少东西
    癸山丁向下卦(七运)
    起卦测我心里想的事
    现在的卦,越来越看不懂了
    luogu P2759 奇怪的函数 |二分答案
    luogu P2515 [HAOI2010]软件安装 |Tarjan+树上背包
    luogu P2343 宝石管理系统 |分块+堆
  • 原文地址:https://www.cnblogs.com/juedui0769/p/4859945.html
Copyright © 2020-2023  润新知