Python Gui——tkinter入门(二)

上一段:点我

目录

10.尺度条(Scale)

11.单选按钮(Radiobutton)

12.复选框(Checkbutton)

13.列表框(Listbox)

14.下拉列表(OptionMenu)

15.组合框(Combobox)

16.窗口布局(PaneWindow)

17.选项卡(Notebook)

18.会话框(Messagebox)

19.菜单(Menu)

20.树形菜单(Treeview)

更新中……

———————————————————————————————————————————

10.尺度条(Scale)

from tkinter import *
win = Tk()
s = Scale(win, label='滑动', from_=0, to=10, orient=HORIZONTAL, length=200, showvalue=0,tickinterval=2, resolution=0.01).pack()

11.单选按钮(Radiobutton)

from tkinter import *
win = Tk()
var = StringVar()
l = Label(win, bg='yellow', width=20, text='???')
l.pack()
def print_selection():
    l.config(text='你选择了 ' + var.get())
r1 = Radiobutton(win, text='A', variable=var, value='A', command=print_selection)
r1.pack()
r2 = Radiobutton(win, text='B', variable=var, value='B', command=print_selection)
r2.pack()
r3 = Radiobutton(win, text='C', variable=var, value='C', command=print_selection)
r3.pack()

12.复选框(Checkbutton)

from tkinter import *
win = Tk()
l = Label(win, bg='yellow', width=20, text='???')
l.pack()
def print_selection():
    if (var1.get() == 1) & (var2.get() == 0):     
        l.config(text='我只喜欢Python ')
    elif (var1.get() == 0) & (var2.get() == 1):   
        l.config(text='我只喜欢C++')
    elif (var1.get() == 0) & (var2.get() == 0):   
        l.config(text='我都不喜欢')
    else:
        l.config(text='我都喜欢')             
 

var1 = IntVar() 
var2 = IntVar()
c1 = Checkbutton(win, text='Python',variable=var1, onvalue=1, offvalue=0, command=print_selection)    # 传值原理类似于radiobutton部件
c1.pack()
c2 = Checkbutton(win, text='C++',variable=var2, onvalue=1, offvalue=0, command=print_selection)
c2.pack()

 

13.列表框(Listbox)

from tkinter import *
win = Tk()
var1 = StringVar()
l = Label(win, bg='green', fg='yellow',font=('Arial', 12), width=10, textvariable=var1)
l.pack()
def print_selection():
    value = lb.get(lb.curselection()) 
    var1.set(value)
b1 = Button(win, text='打印', width=15, height=2, command=print_selection)
b1.pack()
var2 = StringVar()
var2.set((1,2,3,4)) 
lb = Listbox(win, listvariable=var2)
lb.pack()

14.下拉列表(OptionMenu)

from tkinter import *
win = Tk()
win.geometry("200x200")
v1 = StringVar(win)
v1.set('python')
op = OptionMenu(win, v1, 'java', 'python', 'C', 'C++')
op['width'] = 10
op.pack()

 

15.组合框(Combobox)

from tkinter import *
from tkinter import ttk
win = Tk()
comvalue=StringVar()
comboxlist=ttk.Combobox(win,textvariable=comvalue)
comboxlist["values"]=("a","b","c","d")
comboxlist.current(0) 
comboxlist.bind("<<ComboboxSelected>>") 
comboxlist.pack()

16.窗口布局(PaneWindow)

from tkinter import *
win = Tk() 
a = PanedWindow(sashrelief = SUNKEN,background="#1DF5DF",width=200)
a.pack()
btn1 = Button(a,text = '左侧按钮')
a.add(btn1)
btn2 = Button(a,text = '右侧按钮')
a.add(btn2)
mainloop()

17.选项卡(Notebook)

from tkinter import *
from tkinter.ttk import *
win = Tk()
win.geometry('300x180')
notebook = Notebook(win)
frameOne = Frame()
frameTwo = Frame()
notebook.add(frameOne, text='选项卡1')
notebook.add(frameTwo, text='选项卡2')
notebook.pack(padx=10, pady=5, fill=BOTH, expand=True)
win.mainloop()

18.会话框(Messagebox)

from tkinter import *
from tkinter.messagebox import *
showinfo(title='Hi', message='你好!')            # 提示信息对话窗
showwarning(title='Hi', message='有警告!')       # 提出警告对话窗
showerror(title='Hi', message='出错了!')         # 提出错误对话窗

19.菜单(Menu)

from tkinter import *
win = Tk()
win.geometry('500x300')
l = Label(win, text='      ', bg='green')
l.pack()
counter = 0
def do_job():
    global counter
    l.config(text=str(counter))
    counter += 1
menubar = Menu(win)
filemenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label='File', menu=filemenu)
filemenu.add_command(label='New', command=do_job)
filemenu.add_command(label='Open', command=do_job)
filemenu.add_command(label='Save', command=do_job)
filemenu.add_separator()   
filemenu.add_command(label='Exit', command=win.quit) 
editmenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label='Edit', menu=editmenu)
editmenu.add_command(label='Cut', command=do_job)
editmenu.add_command(label='Copy', command=do_job)
editmenu.add_command(label='Paste', command=do_job)
submenu = Menu(filemenu) 
filemenu.add_cascade(label='Import', menu=submenu, underline=0) 
submenu.add_command(label='Submenu_1', command=do_job)
win.config(menu=menubar)

20.树形菜单(Treeview)

因为有点难,所以良心的作者写了注释。

1、表格代码:

import tkinter as tk
from tkinter import ttk
 
window = tk.Tk()
# 设置窗口大小
winWidth = 600
winHeight = 400
# 获取屏幕分辨率
screenWidth = window.winfo_screenwidth()
screenHeight = window.winfo_screenheight()
 
x = int((screenWidth - winWidth) / 2)
y = int((screenHeight - winHeight) / 2)
 
# 设置主窗口标题
window.title("TreeView参数说明")
# 设置窗口初始位置在屏幕居中
window.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))
# 设置窗口宽高固定
window.resizable(0, 0)
 
# 定义列的名称
columns = ("name", "gender", "age")
tree = ttk.Treeview(window, show = "headings", columns = columns, selectmode = tk.BROWSE)
 
# 设置表格文字居中
tree.column("name", anchor = "center")
tree.column("gender", anchor = "center")
tree.column("age", anchor = "center")
 
# 设置表格头部标题
tree.heading("name", text = "姓名")
tree.heading("gender", text = "性别")
tree.heading("age", text = "年龄")
 
# 设置表格内容
lists = [{"name": "yang", "gender": "男", "age": "18"}, {"name": "郑", "gender": "女", "age": "25"}]
i = 0
for v in lists:
    tree.insert('', i, values = (v.get("name"), v.get("gender"), v.get("age")))
    i += 1
 
tree.pack(expand = True, fill = tk.BOTH)
 
 
# 获取当前点击行的值
def treeviewClick(event):  # 单击
    for item in tree.selection():
        item_text = tree.item(item, "values")
        print(item_text)
 
# 鼠标左键抬起
tree.bind('<ButtonRelease-1>', treeviewClick)
 
# 鼠标选中一行回调
def selectTree(event):
    for item in tree.selection():
        item_text = tree.item(item, "values")
        print(item_text)
     
# 选中行
#tree.bind('<<TreeviewSelect>>', selectTree)
 
window.mainloop()

 2、树状代码:

import tkinter as tk
from tkinter import ttk
 
window = tk.Tk()
# 设置窗口大小
winWidth = 600
winHeight = 400
# 获取屏幕分辨率
screenWidth = window.winfo_screenwidth()
screenHeight = window.winfo_screenheight()
 
x = int((screenWidth - winWidth) / 2)
y = int((screenHeight - winHeight) / 2)
 
# 设置主窗口标题
window.title("TreeView参数说明")
# 设置窗口初始位置在屏幕居中
window.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))
# 设置窗口宽高固定
window.resizable(0, 0)
 
# 定义列的名称
tree = ttk.Treeview(window, show = "tree")
 
myid=tree.insert("",0,"中国",text="中国China",values=("1"))  # ""表示父节点是根
myidx1=tree.insert(myid,0,"广东",text="中国广东",values=("2"))  # text表示显示出的文本,values是隐藏的值
myidx2=tree.insert(myid,1,"江苏",text="中国江苏",values=("3"))
myidy=tree.insert("",1,"美国",text="美国USA",values=("4"))   
myidy1=tree.insert(myidy,0,"加州",text="美国加州",values=("5"))
 
# 鼠标选中一行回调
def selectTree(event):
    for item in tree.selection():
        item_text = tree.item(item, "values")
        print(item_text)
     
# 选中行
tree.bind('<<TreeviewSelect>>', selectTree)
 
tree.pack(expand = True, fill = tk.BOTH)
 
window.mainloop()

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值