tkinter python(图形开发界面) 转自:渔单渠
Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
目录:1、简单实例2、Label控件3、Button控件4、Entry控件5、点击按钮输出输入框中的内容6、Text控件7、带滚动条的Text8、Checkbutton多选框控件9、Radiobutton单选框10、Listbox控件一11、Listbox控件二12、Listbox控件三13、Listbox四14、Scale控件15、Spinbox控件16、Menu顶层菜单17、Menu鼠标右键菜单18、Combobox下拉控件19、Frame控件20、表格数据21、树状数据22、绝对布局23、相对布局24、表格布局25、鼠标点击事件26、鼠标移动事件27、鼠标释放事件28、进入和离开事件29、响应所有按键的事件30、响应特殊按键事件31、指定按键事件32、组合按键事件 |
1、简单实例
下面的代码是创建出一个窗口,其他的操作就在这个平台上进行。执行之后会在桌面弹出一个窗口,窗口的标题就是代码中设置的win.title。这里说一下,我使用的版本是python3.6。后面的内容尽量按顺序看,后面的控件也许用到前面写到的东西。

#!/usr/bin/env python
# -*- coding:utf-8 -*- import tkinter # 创建主窗口
win = tkinter.Tk()
# 设置标题
win.title("yudanqu")
# 设置大小和位置
win.geometry("400x400+200+50") # 进入消息循环,可以写控件 win.mainloop()

2、Label控件

#!/usr/bin/env python
# -*- coding:utf-8 -*- import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") '''
Label:标签控件,可以显示文本
'''
# win:父窗体
# text:显示的文本内容
# bg:背景色
# fg:字体颜色
# font:字体
# wraplength:指定text文本中多宽之后换行
# justify:设置换行后的对齐方式
# anchor:位置 n北,e东,w西,s南,center居中;还可以写在一起:ne东北方向
label = tkinter.Label(win,
text="this is a word",
bg="pink", fg="red",
font=("黑体", 20),
width=20,
height=10,
wraplength=100,
justify="left",
anchor="ne") # 显示出来
label.pack() win.mainloop()

3、Button控件

#!/usr/bin/env python
# -*- coding:utf-8 -*- import tkinter def func():
print("aaaaaaaaaaaaaaaaaaaaaaa") win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # 创建按钮
button1 = tkinter.Button(win, text="按钮", command=func, width=10, height=10)
button1.pack() button2 = tkinter.Button(win, text="按钮", command=lambda: print("bbbbbbbbbbbb"))
button2.pack() button3 = tkinter.Button(win, text="退出", command=win.quit)
button3.pack() win.mainloop()

4、Entry控件

#!/usr/bin/env python
# -*- coding:utf-8 -*- import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") '''
Entry:输入控件,用于显示简单的文本内容
''' # 密文显示
entry1 = tkinter.Entry(win, show="*") # show="*" 可以表示输入密码
entry1.pack() # 绑定变量
e = tkinter.Variable() entry2 = tkinter.Entry(win, textvariable=e)
entry2.pack() # e就代表输入框这个对象
# 设置值
e.set("wewewewewewe")
# 取值
print(e.get())
print(entry2.get()) win.mainloop()

5、点击按钮输出输入框中的内容

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") def showinfo():
# 获取输入的内容
print(entry.get()) entry = tkinter.Entry(win)
entry.pack() button = tkinter.Button(win, text="按钮", command=showinfo)
button.pack() win.mainloop()

6、Text控件

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") '''
文本控件:用于显示多行文本
''' # height表示的是显示的行数
text = tkinter.Text(win, width=30, height=10)
text.pack() str = '''盖闻天地之数,有十二万九千六百岁为一元。将一元分为十二会,乃子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥之十二支也。每会该一万八百岁。且就一日而论:子时得阳气,而丑则鸡鸣;寅不通光,而卯则日出;辰时食后,而巳则挨排;日午天中,而未则西蹉;申时晡而日落酉;戌黄昏而人定亥。譬于大数,若到戌会之终,则天地昏蒙而万物否矣。再去五千四百岁,交亥会之初,则当黑暗,而两间人物俱无矣,故曰混沌。又五千四百岁,亥会将终,贞下起元,近子之会,而复逐渐开明。邵康节曰:“冬至子之半,天心无改移。一阳初动处,万物未生时。”到此,天始有根。再五千四百岁,正当子会,轻清上腾,有日,有月,有星,有辰。日、月、星、辰,谓之四象。故曰,天开于子。又经五千四百岁,子会将终,近丑之会,而逐渐坚实。易曰:“大哉乾元!至哉坤元!万物资生,乃顺承天。”至此,地始凝结。再五千四百岁,正当丑会,重浊下凝,有水,有火,有山,有石,有土。水、火、山、石、土谓之五形。故曰,地辟于丑。又经五千四百岁,丑会终而寅会之初,发生万物。''' text.insert(tkinter.INSERT, str) win.mainloop()

7、带滚动条的Text

#!/usr/bin/env python
# -*- coding:utf-8 -*- import tkinter win = tkinter.Tk()
win.title("yudanqu")
# win.geometry("400x400+200+50") '''
文本控件:用于显示多行文本
''' # 创建滚动条
scroll = tkinter.Scrollbar() text = tkinter.Text(win, width=30, height=10)
# side放到窗体的哪一侧, fill填充
scroll.pack(side=tkinter.RIGHT, fill=tkinter.Y)
text.pack(side=tkinter.LEFT, fill=tkinter.Y)
# 关联
scroll.config(command=text.yview)
text.config(yscrollcommand=scroll.set) text.pack() str = '''盖闻天地之数,有十二万九千六百岁为一元。将一元分为十二会,乃子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥之十二支也。每会该一万八百岁。且就一日而论:子时得阳气,而丑则鸡鸣;寅不通光,而卯则日出;辰时食后,而巳则挨排;日午天中,而未则西蹉;申时晡而日落酉;戌黄昏而人定亥。譬于大数,若到戌会之终,则天地昏蒙而万物否矣。再去五千四百岁,交亥会之初,则当黑暗,而两间人物俱无矣,故曰混沌。又五千四百岁,亥会将终,贞下起元,近子之会,而复逐渐开明。邵康节曰:“冬至子之半,天心无改移。一阳初动处,万物未生时。”到此,天始有根。再五千四百岁,正当子会,轻清上腾,有日,有月,有星,有辰。日、月、星、辰,谓之四象。故曰,天开于子。又经五千四百岁,子会将终,近丑之会,而逐渐坚实。易曰:“大哉乾元!至哉坤元!万物资生,乃顺承天。”至此,地始凝结。再五千四百岁,正当丑会,重浊下凝,有水,有火,有山,有石,有土。水、火、山、石、土谓之五形。故曰,地辟于丑。又经五千四百岁,丑会终而寅会之初,发生万物。''' text.insert(tkinter.INSERT, str) win.mainloop()

8、Checkbutton多选框控件

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") def updata():
message = ""
if hobby1.get() ==True:
message += "money\n"
if hobby2.get() == True:
message += "power\n"
if hobby3.get() == True:
message += "people\n" # 清空text中所有内容
text.delete(0.0, tkinter.END)
text.insert(tkinter.INSERT, message) # 要绑定的变量
hobby1 = tkinter.BooleanVar()
# 多选框
check1 = tkinter.Checkbutton(win, text="money", variable=hobby1, command=updata)
check1.pack()
hobby2 = tkinter.BooleanVar()
check2 = tkinter.Checkbutton(win, text="power", variable=hobby2, command=updata)
check2.pack()
hobby3 = tkinter.BooleanVar()
check3 = tkinter.Checkbutton(win, text="people", variable=hobby3, command=updata)
check3.pack() text = tkinter.Text(win, width=50, height=5)
text.pack() win.mainloop()

9、Radiobutton单选框

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") def updata():
print(r.get()) # 绑定变量,一组单选框要绑定同一个变量,就能区分出单选框了
r = tkinter.IntVar() radio1 = tkinter.Radiobutton(win, text="one", value=1, variable=r, command=updata)
radio1.pack()
radio2 = tkinter.Radiobutton(win, text="two", value=2, variable=r, command=updata)
radio2.pack() win.mainloop()

10、Listbox控件一

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") '''
列表框控件:可以包含一个或多个文本框
作用:在listbox控件的小窗口显示一个字符串
''' # 创建一个listbox,添加几个元素
lb = tkinter.Listbox(win, selectmode=tkinter.BROWSE)
lb.pack() for item in ["good", "nice", "handsome", "aaa", "bbb", "ccc", "ddd"]:
# 按顺序添加
lb.insert(tkinter.END, item) # 在开始添加
lb.insert(tkinter.ACTIVE, "cool") # 将列表当做一个元素添加
# lb.insert(tkinter.END, ["very good", "very nice"]) # 删除:参数1为开始的索引,参数2为结束的索引,如果不指定参数2,只删除第一个索引处的内容
lb.delete(1,3) # 选中:参数1为开始的索引,参数2为结束的索引,如果不指定参数2,只选中第一个索引处的内容
lb.select_set(2,3) # 取消选中:参数1为开始的索引,参数2为结束的索引,如果不指定参数2,只取消第一个索引处的内容
lb.select_clear(2) # 获取到列表中的元素个数
print(lb.size())
# 获取值
print(lb.get(2,3)) # 返回当前的索引项,不是item元素
print(lb.curselection()) # 判断:一个选项是否被选中
print(lb.selection_includes(3)) win.mainloop()

11、Listbox控件二

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # 绑定变量
lbv = tkinter.StringVar() # 与BORWSE相似,但是不支持鼠标按下后移动选中位置
lb = tkinter.Listbox(win, selectmode=tkinter.SINGLE, listvariable=lbv)
lb.pack() for item in ["good", "nice", "handsome", "aaa", "bbb", "ccc", "ddd"]:
# 按顺序添加
lb.insert(tkinter.END, item) # 打印当前列表中的选型
print(lbv.get()) # 设置选项
# lbv.set(("1","2","3")) # 绑定事件
def myprint(event):
# print(lb.curselection()) # 返回下标
print(lb.get(lb.curselection())) # 返回值
lb.bind("<Double-Button-1>", myprint) win.mainloop()

12、Listbox控件三

import tkinter win = tkinter.Tk()
win.title("yudanqu")
# win.geometry("400x400+200+50") # EXTENDED:可以使listbox支持shift和Ctrl
lb = tkinter.Listbox(win, selectmode=tkinter.EXTENDED)
lb.pack() for item in ["good", "nice", "handsome", "aaa", "bbb", "ccc", "ddd", "good", "nice", "handsome", "aaa", "bbb", "ccc", "ddd", "good", "nice", "handsome", "aaa", "bbb", "ccc", "ddd", "good", "nice", "handsome", "aaa", "bbb", "ccc", "ddd", "good", "nice", "handsome", "aaa", "bbb", "ccc", "ddd"]:
# 按顺序添加
lb.insert(tkinter.END, item) # 滚动条
sc = tkinter.Scrollbar(win)
sc.pack(side=tkinter.RIGHT, fill=tkinter.Y)
# 配置
lb.configure(yscrollcommand=sc.set)
lb.pack(side=tkinter.LEFT, fill=tkinter.BOTH)
# 额外给属性赋值
sc["command"] = lb.yview win.mainloop()

13、Listbox四

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # MULTIPLE支持多选
lb = tkinter.Listbox(win, selectmode=tkinter.MULTIPLE)
lb.pack() for item in ["good", "nice", "handsome", "aaa", "bbb", "ccc", "ddd"]:
# 按顺序添加
lb.insert(tkinter.END, item) win.mainloop()

14、Scale控件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") '''
供用户通过拖拽指示器来改变变量的值,可以水平,也可以竖直
''' # tkinter.HORIZONTAL水平
# tkinter.VERTICAL 竖直(默认)
# length:水平时表示宽度,竖直时表示高度
# tickintervar :选择值将会为该值得倍数 scale1 = tkinter.Scale(win, from_=0, to=100, orient=tkinter.HORIZONTAL, tickinterval=10, length=200)
scale1.pack() # 设置值
scale1.set(20) # 取值
# print(scale1.get()) def showNum():
print(scale1.get())
tkinter.Button(win, text="按钮", command=showNum).pack() win.mainloop()

15、Spinbox控件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") '''
数值范围控件
''' # 绑定变量
v = tkinter.StringVar() def updata():
print(v.get()) # increment:步长,默认为1
# values要输入一个元组 最好不要和from和to同时使用,而且步长也没用
# command 只要值改变就会执行updata方法
sp = tkinter.Spinbox(win, from_=0, to=100, increment=5,
textvariable=v, command=updata)
# sp = tkinter.Spinbox(win, values=(0,2,4,6,8))
sp.pack() # 赋值
v.set(20)
# 取值
print(v.get()) win.mainloop()

16、Menu顶层菜单

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # 菜单条
menubar = tkinter.Menu(win)
win.config(menu=menubar) def func():
print("**********") # 创建一个菜单选项
menu1 = tkinter.Menu(menubar, tearoff=False) # 给菜单选项添加内容
for item in ['python','c','java','c++', 'c#','php','B','退出']:
if item == '退出':
# 添加分割线
menu1.add_separator()
menu1.add_command(label=item, command=win.quit)
else:
menu1.add_command(label=item, command=func) # 向菜单条上添加菜单选项
menubar.add_cascade(label='语言', menu=menu1) win.mainloop()

17、Menu鼠标右键菜单

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # 菜单条
menubar = tkinter.Menu(win) def func():
print("**********") # 菜单
menu = tkinter.Menu(menubar, tearoff=False)
# 给菜单选项添加内容
for item in ['python','c','java','c++', 'c#','php','B','退出']:
if item == '退出':
# 添加分割线
menu.add_separator()
menu.add_command(label=item, command=win.quit)
else:
menu.add_command(label=item, command=func) menubar.add_cascade(label="语言", menu=menu) def showMenu(event):
menubar.post(event.x_root, event.y_root) win.bind("<Button-3>", showMenu) win.mainloop()

18、Combobox下拉控件

import tkinter
from tkinter import ttk win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # 绑定变量
cv = tkinter.StringVar() com = ttk.Combobox(win, textvariable=cv)
com.pack() # 设置下拉数据
com["value"] = ("黑龙江", "吉林", "辽宁") # 设置默认值
com.current(0) # 绑定事件 def func(event):
print(com.get())
print(cv.get())
com.bind("<<ComboboxSelected>>", func) win.mainloop()

19、Frame控件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") '''
框架控件:在桌面上显示一个矩形区域,多作为一个容器控件
''' frm = tkinter.Frame(win)
frm.pack() # left
frm_l = tkinter.Frame(frm)
tkinter.Label(frm_l, text="左上", bg="pink").pack(side=tkinter.TOP)
tkinter.Label(frm_l, text="左下", bg="blue").pack(side=tkinter.TOP)
frm_l.pack(side=tkinter.LEFT) # right
frm_r = tkinter.Frame(frm)
tkinter.Label(frm_r, text="右上", bg="green").pack(side=tkinter.TOP)
tkinter.Label(frm_r, text="右下", bg="red").pack(side=tkinter.TOP)
frm_r.pack(side=tkinter.RIGHT) win.mainloop()

20、表格数据

import tkinter
from tkinter import ttk win = tkinter.Tk()
win.title("yudanqu")
win.geometry("600x400+200+50") # 表格
tree = ttk.Treeview(win)
tree.pack() # 定义列
tree["columns"] = ("姓名","年龄","身高","体重")
# 设置列,列还不显示
tree.column("姓名", width=100)
tree.column("年龄", width=100)
tree.column("身高", width=100)
tree.column("体重", width=100) # 设置表头
tree.heading("姓名", text="姓名-name")
tree.heading("年龄", text="年龄-age")
tree.heading("身高", text="身高-height")
tree.heading("体重", text="体重-weight") # 添加数据
tree.insert("", 0, text="line1", values=("小郑","","177cm","70kg"))
tree.insert("", 1, text="line2", values=("小张","","188cm","90kg")) win.mainloop()

21、树状数据

import tkinter
from tkinter import ttk win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") tree = ttk.Treeview(win)
tree.pack() # 添加一级树枝
treeF1 = tree.insert("",0,"中国",text= "中国Chi", values=("F1"))
treeF2 = tree.insert("",1,"美国",text= "美国USA", values=("F1"))
treeF3 = tree.insert("",2,"英国",text= "英国UK", values=("F1")) # 二级树枝
treeF1_1 = tree.insert(treeF1,0,"黑龙江",text="中国黑龙江",values=("F1_1"))
treeF1_2 = tree.insert(treeF1,1,"吉林",text="中国吉林",values=("F1_2"))
treeF1_3 = tree.insert(treeF1,2,"辽宁",text="中国辽宁",values=("F1_3")) treeF2_1 = tree.insert(treeF2,0,"aaa",text="aaaa",values=("F2_1"))
treeF2_2 = tree.insert(treeF2,1,"bbb",text="bbbb",values=("F2_2"))
treeF2_3 = tree.insert(treeF2,2,"ccc",text="cccc",values=("F2_3")) # 三级树枝
treeF1_1_1 = tree.insert(treeF1_1,0,"哈尔滨",text="黑龙江哈尔滨")
treeF1_1_2 = tree.insert(treeF1_1,1,"五常",text="黑龙江五常") win.mainloop()

22、绝对布局

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") label1 = tkinter.Label(win, text="good", bg="blue")
label2 = tkinter.Label(win, text="nice", bg="red")
label3 = tkinter.Label(win, text="cool", bg="green") # 绝对布局,窗口的变化对位置没有影响
label1.place(x=10,y=10)
label2.place(x=50,y=50)
label3.place(x=100,y=100) win.mainloop()

23、相对布局

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") label1 = tkinter.Label(win, text="good", bg="blue")
label2 = tkinter.Label(win, text="nice", bg="red")
label3 = tkinter.Label(win, text="cool", bg="green") # 相对布局,窗体改变对控件有影响
label1.pack(fill=tkinter.Y, side=tkinter.LEFT)
label2.pack(fill=tkinter.X, side=tkinter.TOP)
label3.pack() win.mainloop()

24、表格布局

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") label1 = tkinter.Label(win, text="good", bg="blue")
label2 = tkinter.Label(win, text="nice", bg="red")
label3 = tkinter.Label(win, text="cool", bg="green")
label4 = tkinter.Label(win, text="handsome", bg="yellow") # 表格布局
label1.grid(row=0,column=0)
label2.grid(row=0,column=1)
label3.grid(row=1,column=0)
label4.grid(row=1,column=1) win.mainloop()

25、鼠标点击事件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") def func(event):
print(event.x, event.y) # <Button-1> 鼠标左键
# <Button-2> 鼠标滚轮
# <Button-1> 鼠标右键
# <Double-Button-1> 鼠标双击左键
# <Triple-Button-1> 鼠标三击左键 button1 = tkinter.Button(win, text="leftmouse button")
# bind 给控件绑定数据(参数一是绑定的事件,参数二是触发事件的函数)
button1.bind("<Button-1>", func)
button1.pack() win.mainloop()

26、鼠标移动事件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # <B1-Motion> 左键移动
# <B2-Motion> 中键移动
# <B3-Motion> 右键移动 label = tkinter.Label(win, text="*********")
label.pack() def func(event):
print(event.x, event.y) label.bind("<B1-Motion>", func) win.mainloop()

27、鼠标释放事件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # <ButtonRelease-1> 释放鼠标左键
# <ButtonRelease-2> 释放鼠标中键
# <ButtonRelease-3> 释放鼠标右键 label = tkinter.Label(win, text="*********", bg="red")
label.pack() def func(event):
print(event.x, event.y) label.bind("<ButtonRelease-1>", func) win.mainloop()

28、进入和离开事件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # <Enter> 当鼠标进入控件时触发事件
# <Leave> 当鼠标离开控件时触发事件 label = tkinter.Label(win, text="*********", bg="red")
label.pack() def func(event):
print(event.x, event.y) label.bind("<Enter>", func)
label.bind("<Leave>", func) win.mainloop()

29、响应所有按键的事件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # <Key> 响应所有的按键(要有焦点) label = tkinter.Label(win, text="*********", bg="red")
# 设置焦点
label.focus_set()
label.pack() def func(event):
print("event.char=", event.char)
print("event.keycode=", event.keycode) label.bind("<Key>", func) win.mainloop()

30、响应特殊按键事件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # <Shift_L> 只响应左侧的shift键
# <Shift_R>
# <F5>
# <Return> 也就是回车键
# <BackSpace> 返回,也就是退格键 label = tkinter.Label(win, text="*********", bg="red")
# 设置焦点
label.focus_set()
label.pack() def func(event):
print("event.char=", event.char)
print("event.keycode=", event.keycode) label.bind("<Shift_L>", func) win.mainloop()

31、指定按键事件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") label = tkinter.Label(win, text="*********", bg="red")
# 设置焦点
label.focus_set()
label.pack() def func(event):
print("event.char=", event.char)
print("event.keycode=", event.keycode) win.bind("a", func) # 注意前面改成了win,只需要写出按键名即可 win.mainloop()

32、组合按键事件

import tkinter win = tkinter.Tk()
win.title("yudanqu")
win.geometry("400x400+200+50") # <Control-Alt-a>
# <Shift-Up>
# 只是control+alt不行 label = tkinter.Label(win, text="*********", bg="red")
# 设置焦点
label.focus_set()
label.pack() def func(event):
print("event.char=", event.char)
print("event.keycode=", event.keycode) win.bind("<Control-Alt-a>", func) # 注意前面改成了win,只需要写出按键名即可 win.mainloop()

tkinter python(图形开发界面) 转自:渔单渠的更多相关文章
- tkinter python(图形开发界面)
Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macinto ...
- thinter图形开发界面
tkinter编程步骤 导入Tkinter 创建控件 import thinter 创建主窗口 #win = tkinter.Tk() 设置标题 win.title("xiaoxin&quo ...
- python自动化开发-[第二十天]-form表单,CBV和FBV,序列化
1.CBV和FBV的用法 2.序列化用法 3.form表单 一.CBV和FBV 1.cbv是 class based view(基于类),fbv是function based view(基于函数) 2 ...
- 第十五章 使用PyQt进行Python图形界面程序开发
在基础知识部分的最后一章<第十三章 Python基础篇结束章>的<第13.3节 图形界面开发tkinter>简单介绍了Python内置图形界面标准库tkinter,当时特别强调 ...
- python 图形界面开发
用python来开发图形界面,确实不是很方便,没有c#,Java,甚至VB来得容易.几个控件拖拽,然后响应事件. 用python写脚本,或者web service来处理一般工作,绰绰有余.但有的时候, ...
- Python图形界面开发编程:wxPython(浅尝篇)
Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 ...
- python图形界面(GUI)设计
不要问我为什么要用 python 来做这种事,我回到“高兴咋地”也不是不可以,总之好奇有没有好的解决方案.逛了一圈下来,总体上来说,python 图形界面有以下几个可行度比较高的解决方案. 1. py ...
- Python 图形界面(GUI)设计
不要问我为什么要用 Python 来做这种事,我回到“高兴咋地”也不是不可以,总之好奇有没有好的解决方案.逛了一圈下来,总体上来说,Python 图形界面有以下几个可行度比较高的解决方案. 1. py ...
- Python图形界面Tk
最近在学习Python,在使用Tkinter做图形界面时遇到了几个小问题,网上查了一下,在Python2.x导入的是Tkinter,Python3则是tkinter.而且导入的simpledialog ...
随机推荐
- 将 iTunes 降级到支持安装 .ipa 文件的版本
将 iTunes 降级到支持安装 .ipa 文件的版本 新版的 iTunes 再也不支持安装 .ipa 文件了,但是 Apple 官网依旧保留了旧版 iTunes 的下载渠道.(点击进入) 安装完上面 ...
- 洛谷 P1880 [NOI1995]石子合并 题解
P1880 [NOI1995]石子合并 题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试 ...
- 洛谷 P2422 良好的感觉 题解
P2422 良好的感觉 题目描述 kkk做了一个人体感觉分析器.每一天,人都有一个感受值Ai,Ai越大,表示人感觉越舒适.在一段时间[i, j]内,人的舒适程度定义为[i, j]中最不舒服的那一天的感 ...
- MintUI引入vue项目以及引入iconfont图标
官网地址:http://mint-ui.github.io/#!/zh-cn 中文文档:http://mint-ui.github.io/docs/#/zh-cn2 示例展示:http://eleme ...
- 18年今日头条笔试第一题题解:球迷(fans)
其实本题是加强版,原数据是100*100的,老师为了尊重我们的智商加成了3000*3000并进行了字符串处理…… 上原题~ 球迷 [问题描述] 一个球场C的球迷看台可容纳M*N个球迷.官方想统计一共有 ...
- MongoDB 索引 和 explain 的使用
索引基本使用 索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得 更快.MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查 询优化技巧. 首先我 ...
- 多线程 interrupt()方法
java interrupt()方法只是设置线程的中断标记,当对处于阻塞状态的线程调用interrupt方法时(处于阻塞状态的线程是调用sleep, wait, join 的线程),会抛出Interr ...
- hadoop综合
对CSV文件进行预处理生成无标题文本文件,将爬虫大作业产生的csv文件上传到HDFS 首先,我们需要在本地中创建一个/usr/local/bigdatacase/dataset文件夹,具体的步骤为: ...
- 2D转换模块
2D转换模块(transform) 1.取值:rotate(45deg)--- 旋转,默认以自己为中心作为参考点来旋转 .translate(100px,0px)--- 平移,第一个参数代表水平方向, ...
- Python绘制3D图形
来自:https://www.jb51.net/article/139349.htm 3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行 ...
