《Python GUI设计 tkinter菜鸟编程》配套代码 第16章 菜单Menu和工具栏Toolbars

ch16_1.py

# ch16_1.py
from tkinter import * 
from tkinter import messagebox 

def hello(): 
    messagebox.showinfo("Hello","欢迎使用菜单") 

root = Tk() 
root.title("ch16_1") 
root.geometry("300x180") 

# 建立最上层菜单 
menubar = Menu(root) 
# menubar.add_command(label="Exit!",command=root.destroy) 
menubar.add_command(label="Hello!",command=hello) 
menubar.add_command(label="Exit!",command=root.destroy) 
root.config(menu=menubar)    # 显示菜单对象 

root.mainloop() 

ch16_2.py

# ch16_2.py
from tkinter import *
from tkinter import messagebox

def newFile():
    messagebox.showinfo("New File-林祖泉","新建文档-林祖泉")

root = Tk()
root.title("ch16_2")
root.geometry("300x180")

menubar = Menu(root)      # 建立最上层菜单
# 建立菜单类别对象,并将此菜单类别命名为File
filemenu = Menu(menubar)
menubar.add_cascade(label="File 文件-林祖泉",menu=filemenu)
# 在File菜单内建立菜单列表
filemenu.add_command(label="New File 新建文件-林祖泉",command=newFile)
filemenu.add_command(label="Exit 退出-林祖泉!",command=root.destroy)
root.config(menu=menubar)    # 显示菜单对象

root.mainloop()

ch16_3.py

# ch16_3.py
from tkinter import *
from tkinter import messagebox

def newFile():
    messagebox.showinfo("New File-林祖泉","新建文档-林祖泉")

root = Tk()
root.title("ch16_3")
root.geometry("300x180")

menubar = Menu(root)      # 建立最上层菜单
# 建立菜单类别对象,并将此菜单类别命名为File
filemenu = Menu(menubar,tearoff=False)
menubar.add_cascade(label="File 文件-林祖泉",menu=filemenu)
# 在File菜单内建立菜单列表
filemenu.add_command(label="New File 新建文件-林祖泉",command=newFile)
filemenu.add_command(label="Exit 退出-林祖泉!",command=root.destroy)
root.config(menu=menubar)    # 显示菜单对象

root.mainloop()

ch16_4.py

# ch16_4.py
from tkinter import *
from tkinter import messagebox
def newFile():
    messagebox.showinfo("New File-林祖泉","新建文档-林祖泉")
def openFile():
    messagebox.showinfo("New File-林祖泉","打开文档-林祖泉")
def saveFile():
    messagebox.showinfo("New File-林祖泉","保存文档-林祖泉")
def saveAsFile():
    messagebox.showinfo("New File-林祖泉","另存为文档-林祖泉")

root = Tk()
root.title("ch16_4")
root.geometry("300x180")

menubar = Menu(root)      # 建立最上层菜单
# 建立菜单类别对象,并将此菜单类别命名为File
filemenu = Menu(menubar)
menubar.add_cascade(label="File 文件-林祖泉",menu=filemenu)
# 在File菜单内建立菜单列表
filemenu.add_command(label="New File 新建文件-林祖泉",command=newFile)
filemenu.add_command(label="Open File 新建文件-林祖泉",command=openFile)
filemenu.add_separator()
filemenu.add_command(label="Save File 新建文件-林祖泉############",command=saveFile)
filemenu.add_separator()########################
filemenu.add_command(label="Save As File 新建文件-林祖泉",command=saveAsFile)
filemenu.add_separator()
filemenu.add_command(label="Exit 退出-林祖泉!",command=root.destroy)
root.config(menu=menubar)    # 显示菜单对象

root.mainloop()

ch16_5.py

# ch16_5.py
from tkinter import *
from tkinter import messagebox
def newFile():
    messagebox.showinfo("New File-林祖泉","新建文档-林祖泉")
def openFile():
    messagebox.showinfo("New File-林祖泉","打开文档-林祖泉")
def saveFile():
    messagebox.showinfo("New File-林祖泉","保存文档-林祖泉")
def saveAsFile():
    messagebox.showinfo("New File-林祖泉","另存为文档-林祖泉")
def aboutMe():
    messagebox.showinfo("New File-林祖泉","代码由cxq重现...")


root = Tk()
root.title("ch16_5")
root.geometry("300x180")

menubar = Menu(root)      # 建立最上层菜单
# 建立菜单类别对象,并将此菜单类别命名为File
filemenu = Menu(menubar)
menubar.add_cascade(label="File 文件-林祖泉",menu=filemenu)
# 在File菜单内建立菜单列表
filemenu.add_command(label="New File 新建文件-林祖泉",command=newFile)
filemenu.add_command(label="Open File 新建文件-林祖泉",command=openFile)
filemenu.add_separator()
filemenu.add_command(label="Save File 新建文件-林祖泉############",command=saveFile)
# filemenu.add_separator()########################
filemenu.add_command(label="Save As File 新建文件-林祖泉",command=saveAsFile)
filemenu.add_separator()
filemenu.add_command(label="Exit 退出-林祖泉!",command=root.destroy)
# 建立菜单类别对象,并将此菜单类别命名为Help
helpmenu = Menu(menubar)
menubar.add_cascade(label="Help-帮助-林祖泉",menu=helpmenu)
# 在Help菜单内建立菜单列表
helpmenu.add_command(label="About Me-关于我",command=aboutMe)

root.config(menu=menubar)    # 显示菜单对象

root.mainloop()

ch16_6.py

# ch16_6.py
from tkinter import *
from tkinter import messagebox
def newFile():
    messagebox.showinfo("New File-林祖泉","新建文档-林祖泉")
def openFile():
    messagebox.showinfo("New File-林祖泉","打开文档-林祖泉")
def saveFile():
    messagebox.showinfo("New File-林祖泉","保存文档-林祖泉")
def saveAsFile():
    messagebox.showinfo("New File-林祖泉","另存为文档-林祖泉")
def aboutMe():
    messagebox.showinfo("New File-林祖泉","代码由cxq重现...")

root = Tk()
root.title("ch16_6")
root.geometry("300x180")

menubar = Menu(root)      # 建立最上层菜单
# 建立菜单类别对象,并将此菜单类别命名为File
filemenu = Menu(menubar)
menubar.add_cascade(label="File 文件-林祖泉",menu=filemenu,underline=0)
# 在File菜单内建立菜单列表
filemenu.add_command(label="New File 新建文件-林祖泉",command=newFile,underline=0)
filemenu.add_command(label="Open File 新建文件-林祖泉",command=openFile,underline=0)
filemenu.add_separator()
filemenu.add_command(label="Save File 新建文件-林祖泉############",command=saveFile,underline=0)
# filemenu.add_separator()########################
filemenu.add_command(label="Save As File 新建文件-林祖泉",command=saveAsFile,underline=5)
filemenu.add_separator()
filemenu.add_command(label="Exit 退出-林祖泉!",command=root.destroy,underline=0)
# 建立菜单类别对象,并将此菜单类别命名为Help
helpmenu = Menu(menubar)
menubar.add_cascade(label="Help-帮助-林祖泉",menu=helpmenu,underline=0)
# 在Help菜单内建立菜单列表
helpmenu.add_command(label="About Me-关于我",command=aboutMe,underline=1)

root.config(menu=menubar)    # 显示菜单对象

root.mainloop()

ch16_7.py

# ch16_7.py
from tkinter import *
from tkinter import messagebox
def newFile():
    messagebox.showinfo("New File-林祖泉","新建文档-林祖泉")
def controlN(event):
    messagebox.showinfo("New File","新建文档-CONTROL+N")

root = Tk()
root.title("ch16_7")
root.geometry("300x180")

menubar = Menu(root)      # 建立最上层菜单
# 建立菜单类别对象,并将此菜单类别命名为File
filemenu = Menu(menubar)
menubar.add_cascade(label="File 文件-林祖泉",menu=filemenu,underline=0)
# 在File菜单内建立菜单列表
filemenu.add_command(label="New File 新建文件-林祖泉",
                    command=newFile,accelerator="Ctrl+N")
# 经过试验发现 #,accelerator="Ctrl+N") 上一行代码的这部分可以直接删去,而不造成可见的影响
filemenu.add_separator()
filemenu.add_command(label="Exit 退出-林祖泉!",command=root.destroy,underline=0)

root.config(menu=menubar)    # 显示菜单对象
root.bind("<Control-N>",lambda event:messagebox.showinfo("New File","新建文档-lambda函数实现"))
# root.bind("<Control-N>",controlN)


# 注意: <Control-N>对快捷键的大小写敏感 按键的时候要使用大写的N
root.mainloop()

ch16_8.py

# ch16_8.py 
from tkinter import *
from tkinter import messagebox
def findNext():
    messagebox.showinfo("Find Next","查找下一个")
def findPrevious():
    messagebox.showinfo("Find Previous","查找前一个")

root = Tk()
root.title("ch16_8")
root.geometry("300x180")

menubar = Menu(root)      # 建立最上层菜单
# 建立菜单类别对象,并将此菜单类别命名为File
filemenu = Menu(menubar)
menubar.add_cascade(label="File",menu=filemenu,underline=0)
# 在File菜单内建立菜单列表
# 首先在File菜单内建立find子菜单对象
findmenu = Menu(filemenu,tearoff=False)  # 取消分隔线 False
# filemenu.add_cascade(label="Find",menu=findmenu) ############## 可以提前到这 
findmenu.add_command(label="Find Next",command=findNext)
findmenu.add_separator() ########################################
findmenu.add_command(label="Find Previous",command=findPrevious)
filemenu.add_cascade(label="Find",menu=findmenu) ############## 提前 

# 下面是增加分隔线和建立Exit!子菜单
filemenu.add_separator()
filemenu.add_separator()############################################
filemenu.add_command(label="Exit!",command=root.destroy,underline=0)

root.config(menu=menubar)

root.mainloop()

ch16_9.py

# ch16_9.py 
from tkinter import *
from tkinter import messagebox
def minimizeIcon():                            # 缩小窗口为图标
    print("窗口最小化...")
    root.iconify()   # 最小化窗口
def showPopupMenu(event):                      # 显示弹出窗口
    print("窗口弹出...")
    popupmenu.post(event.x_root,event.y_root)  # 在鼠标光标位置处弹出此菜单
    # print(event.x_root," *** ",event.y_root)
    # print(type(event.x_root)," *** ",type(event.y_root))  # int类型
    # popupmenu.post(100,100)  ############ # 窗口固定显示

root = Tk()
root.title("ch16_9")
root.geometry("300x180")

popupmenu = Menu(root,tearoff=False)           # 建立弹出窗口对象
# 在弹出菜单内建立两个指令列表
popupmenu.add_command(label="Minimize",command=minimizeIcon)
popupmenu.add_command(label="Exit",command=root.destroy)
# 单击鼠标右键绑定显示弹出菜单
root.bind("<Button-3>",showPopupMenu)

# root.config(menu=popupmenu) # 这段代码将popupmenu对象固定在窗口菜单栏
root.mainloop()

ch16_10.py

# ch16_10.py 
from tkinter import *

def status():
    if demoStatus.get():
        statusLabel.pack(side=BOTTOM,fill=X)
    else:
        statusLabel.pack_forget() # 隐藏标签状态栏

root = Tk()
root.title("ch16_10")
root.geometry("300x180")

menubar = Menu(root)           # 建立最上层菜单
# 建立菜单类别对象,并将此菜单类别命名为File
filemenu = Menu(menubar,tearoff=False)
menubar.add_cascade(label="File",menu=filemenu)
# 在File菜单内建立菜单列表Exit
filemenu.add_command(label="Exit",command=root.destroy)
# 建立菜单类别对象,并将此菜单类别命名为View
viewmenu = Menu(menubar,tearoff=False)
menubar.add_cascade(label="View",menu=viewmenu)
# 在View菜单内创建Check menu button
demoStatus = BooleanVar()
demoStatus.set(True)
viewmenu.add_checkbutton(label="Status",command=status,
                            variable=demoStatus) # demoStatus状态改变时会调用status函数
root.config(menu=menubar)

statusVar = StringVar()
statusVar.set("显示")
statusLabel = Label(root,textvariable=statusVar,relief="raised")
statusLabel.pack(side=BOTTOM,fill=X)

root.mainloop()

ch16_11.py

# ch16_11.py 
from tkinter import *

root = Tk()
root.title("ch16_11")
root.geometry("300x180")

menubar = Menu(root)           # 建立最上层菜单
# 建立菜单类别对象,并将此菜单类别命名为File
filemenu = Menu(menubar,tearoff=False)
menubar.add_cascade(label="File",menu=filemenu)
# 在File菜单内建立菜单列表Exit
filemenu.add_command(label="Exit",command=root.destroy)

# 建立工具栏
toolbar = Frame(root,relief=RAISED,borderwidth=3)
# 在工具栏内创建按钮
myGif = PhotoImage(file="chuckle.gif")
exitBtn = Button(toolbar,image=myGif,command=root.destroy)
exitBtn.pack(side=LEFT,padx=3,pady=3)                          # 包装按钮
toolbar.pack(side=TOP,fill=X)                                  # 包装工具栏
root.config(menu=menubar)                                      # 显示菜单对象

root.mainloop()
### 回答1: TkinterPython语言的一个标准GUI库,可以用来创建各种图形界面应用程序。它是Python内置的库,无需额外安装。Tkinter提供了一系列的组件,如按钮、标签、文本框等,以及各种布局管理器,如Grid布局和Pack布局等,供开发者使用。 对于初学者来说,菜鸟编程PDF对于学习Tkinter非常有帮助。它通过简单明了的语言和大量实例代码,帮助读者快速入门并掌握Tkinter的基础知识和常用功能。 首先,这本PDF会介绍Tkinter的基本概念和使用方法,并通过一些简单的示例代码展示Tkinter的基本功能,帮助读者了解如何创建窗口、添加组件、设置布局等。 其次,该PDF还会详细介绍Tkinter中常用的组件,如按钮、标签、文本框等,并通过示例代码展示了它们的基本用法和常见功能。 此外,菜鸟编程的这本PDF还会介绍Tkinter中的事件处理和布局管理器等高级内容。事件处理可以让用户与程序进行交互,响应用户的操作,而布局管理器可以帮助开发者更方便地设置和调整界面的布局。 总的来说,这本菜鸟编程Tkinter PDF提供了丰富的例子和简单易懂的教程,对于想学习Python GUI编程的初学者来说,是一本非常好的指南。读者可以通过这本PDF快速入门Tkinter,并掌握基本的GUI开发技巧,为以后的项目开发打下良好的基础。 ### 回答2: Python GUI设计是使用Python编程语言开发图形用户界面(GUI)的过程。其中,TkinterPython内置库之一,提供了快速和简单的方法来创建GUI应用程序。 Tkinter的优势之一是它易于学习和使用。大部分用户只需要一些基本的Python知识,就能够开始使用Tkinter创建GUI应用程序。此外,Tkinter提供了丰富的控件(如按钮、文本输入框、列表框等),可以轻松地实现各种功能。 对于初学者来说,使用Tkinter创建GUI应用程序具有很高的可扩展性和灵活性。我们可以通过自定义控件的外观和行为,使应用程序更符合我们的需求。此外,Tkinter提供了丰富的布局管理器,可以帮助我们轻松地调整和排列控件。 编写图形用户界面时,我们通常需要处理用户的输入和操作。Tkinter提供了丰富的事件处理机制,可以捕获和响应用户的各种操作。我们可以编写相应的事件处理函数,根据用户的操作来更新界面和执行相应的逻辑。 最后,Tkinter提供了对像素级别的控制,可以使用绑定到特定控件的回调函数来实现对控件进行自定义的操作。这使得我们能够更加深入地控制应用程序的外观和行为。 总的来说,Python GUI设计使用Tkinter可以帮助我们快速、简单地创建各种GUI应用程序。即使对于刚开始学习的菜鸟编程者来说,也可以通过掌握基本的Tkinter知识,轻松地创建自己想要的GUI应用程序。 ### 回答3: 《Python GUI设计 Tkinter菜鸟编程 PDF》是一本以Python编程语言为基础,教授如何使用Tkinter库进行图形用户界面(GUI)设计的电子书。TkinterPython中一个内建的GUI库,它提供了一系列的组件和工具,使开发者能够轻松创建交互式的桌面应用程序。 这本PDF适合初学者或者菜鸟级别的编程者,它详细介绍了Tkinter库的基础知识和使用方法。读者可以通过学习这本书,了解如何使用Tkinter创建窗口、标签、按钮、文本框等常见的GUI组件,并将它们进行布局和设计,从而构建一个完整的用户界面。 这本书还介绍了一些高级的Tkinter技巧和功能,如使用事件处理机制实现交互性、添加图像和多媒体文件、使用缩放和滚动条控制部件等。读者将学会如何将这些技巧应用于自己的项目中,以便创建出更具吸引力和实用性的应用程序。 总的来说,这本《Python GUI设计 Tkinter菜鸟编程 PDF》是一本适合初学者的指南,它帮助读者快速入门GUI设计,并教授如何使用Tkinter库创建各种交互性强、功能丰富的应用程序。无论是想要开发一个小型工具还是一个全功能的应用程序,都可以从这本书中获取到所需的知识和技能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值