Tkinter学习
from tkinter import *
window = Tk() # 创建一个窗口
window.mainloop() # 消息循环,显示窗口
window.title("窗口标题") # 窗口标题
window.geometry("380x420+500+240") #窗口的大小和位置,注意:是x不是*,单位是像素,以桌面左上角为原点坐标
window['width']=80; window['height']=80 设置窗口的大小,单位是像素,没原点坐标
root.attributes("-transparentcolor", "white") # 把白色变成透明颜色
root["background"] = "white" # 窗口背景色设置为白色
root.overrideredirect(True) # 这一行可以隐藏掉窗口边框和标题栏
window.resizable(width=False,height=Ture) # 设置窗口是否可以变化长 宽,宽可变,高不可变,默认为Ture
label.grid(row = 0,column = 0,sticky = E) # 显示和定位 网格式布局 columnspan=2跨越的列数 # S上 E右 W左 N下
label.pack(side=LEFT) # 这里的side可以赋值为LEFT、RTGHT、TOP、BOTTOM
btn.grid(#######) # 按钮布局
window.protocol("WM_DELETE_WINDOW",closeWindow) # protocol 用户关闭窗口触发的是事件,closeWindow是用户自己定义的函数
def closeWindow():
messagebox.showinfo(title="警告",message="不需关闭好好回答!")
# messagebox.showerror(title="警告", message="不需关闭好好回答!")
return
def closeWindow():
window2 = Toplevel(window) # 创建顶级窗口,
photo = PhotoImage(file = "./cc.gif") # 加载这张图片,显示图片不会把窗口撑大,但只能显示局部图片,所以只能把图片的水平和垂直像素变小
window.destroy() # 关闭window窗口
import tkinter root = tkinter.Tk() root.overrideredirect(True) # 这一行可以隐藏掉窗口边框和标题栏
root["width"] = 200
root["height"] = 80
root.attributes("-transparentcolor", "white") # 把白色变成透明颜色
root["background"] = "white" # 窗口背景色设置为白色 x, y = 0, 0 def startmove(event):
global x, y
x = event.x
y = event.y def stopmove(event):
x = None
y = None def onmotion(event):
global x, y
deltax = event.x - x
deltay = event.y - y
_x = root.winfo_x() + deltax
_y = root.winfo_y() + deltay
root.geometry("+%s+%s" % (_x, _y)) # 窗口的位置 label = tkinter.Label(root, text="哈哈哈,模拟时钟",font=("仿宋",15), bg="white",fg='WhiteSmoke')
label.place(x=10, y=10, anchor=tkinter.NW) root.bind("<ButtonPress-1>", startmove)
root.bind("<ButtonRelease-1>", stopmove)
root.bind("<B1-Motion>", onmotion) root.mainloop()
透明文本
控件
Label、Frame、Entry、Text、Button、Listbox、Scrollbar
注意:每个控件最后要加上pack(),否则无法显示
1、Label
label = Label(window,text = "hey,小姐姐",font = ("宋体",15),fg = 'red',bg="white",width=5,height=2)
# 创建标签控件,第一个参数传window,字体,text控件内容,fg字体颜色,bg是背景颜色,字体在C:\Windows\Fonts目录下,width、height控件的宽高
2、Frame
在屏幕上创建一块矩形区域,多作为容器来布局窗体
from tkinter import *
root = Tk()
root.title("hello world")
root.geometry('300x200') Label(root, text='校训', font=('Arial', 20)).pack() frm = Frame(root)
frm_L = Frame(frm) # left
Label(frm_L, text='厚德', font=('Arial', 15)).pack(side=TOP)
Label(frm_L, text='博学', font=('Arial', 15)).pack(side=TOP)
frm_L.pack(side=LEFT) frm_R = Frame(frm) # right
Label(frm_R, text='敬业', font=('Arial', 15)).pack(side=TOP)
Label(frm_R, text='乐群', font=('Arial', 15)).pack(side=TOP)
frm_R.pack(side=RIGHT) frm.pack() #显示控件
root.mainloop() # 进入循环,显示窗口
frm = Frame(root)
3、Entry
创建单行文本框
from tkinter import * root = Tk()
root.title("hello world")
root.geometry() # 窗口大小位置
var = StringVar() # 绑定变量
e = Entry(root, textvariable=var)
var.set("hello") # 设置文本框中的值
e.pack()
a = var.get() # 获取文本框中的值 root.mainloop()
e = Entry(root, textvariable=var)
4、Text 文本输入控件
向该空间内输入文本
t = Text(window) # 创建文本框实例
t.insert(mark, 内容)
# mark可以填行号、特殊字符、INSERT光标插入点、CURRENT鼠标当前所对应的位置、END文本控件的最后一个字符、SEL_FIRST选中文本域的第一个字符,如果没有选中区域则会引发异常、SEL_LAST选中文本域的最后一个字符,如果没有选中区域则会引发异常
t.insert(1.0, 'hello\n') # 插入内容
t.insert(END, 'hero\n')
t.pack()
5、Button 按钮控件
btn = Button(window,text = "喜欢",width = 15,height = 2,command = Love)
# 按钮控件,第一个参数传入window,width、height按钮的宽和高,command是点击按钮触发的命令
root.bind("<ButtonPress-1>", startmove) # 按下鼠标做什么事情
root.bind("<ButtonRelease-1>", stopmove) # 松开鼠标做什么事情
root.bind("<B1-Motion>", onmotion) # 按住鼠标做什么事情
6、Listbox 列表控件
# selectmode可以为BROWSE MULTIPL SINGLE
from tkinter import * root = Tk()
root.title("hello world")
root.geometry() def print_item(event):
print(lb.get(lb.curselection())) var = StringVar() # 绑定变量
lb = Listbox(root, listvariable=var) # 创建列表
list_item = [1, 2, 3, 4] # 控件的内容为1 2 3 4
for item in list_item:
lb.insert(END, item) # 添加
lb.delete(2, 4) # 删除,此时控件的内容为1 3 var.set(('a', 'ab', 'c', 'd')) # 设置列表所有值
print(var.get()) # 得到列表所有值
lb.bind('<ButtonRelease-1>', print_item) # 释放鼠标触发事件
lb.pack() root.mainloop()
7、Scrollbar
在屏幕上创建一个矩形区域
from Tkinter import *
root = Tk()
root.title("hello world")
root.geometry() def print_item(event):
print lb.get(lb.curselection()) var = StringVar()
lb = Listbox(root, height=5, selectmode=BROWSE, listvariable = var)
lb.bind('<ButtonRelease-1>', print_item)
list_item = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
for item in list_item:
lb.insert(END, item) scrl = Scrollbar(root)
scrl.pack(side=RIGHT, fill=Y)
lb.configure(yscrollcommand = scrl.set)
lb.pack(side=LEFT, fill=BOTH)
scrl['command'] = lb.yview root.mainloop()
Tkinter学习的更多相关文章
- Python Tkinter 学习成果:点歌软件music
笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点 ...
- tkinter学习-Lable&Button
tkinter学习-La&Bu 我的第一个Tkinter程序 Label组件的使用 Button组件的使用 1.我的第一个Tkinter程序 常用的属性: title:设置窗口的标题 geom ...
- Python:GUI之tkinter学习笔记1控件的介绍及使用
相关内容: tkinter的使用 1.模块的导入 2.使用 3.控件介绍 Tk Button Label Frame Toplevel Menu Menubutton Canvas Entry Mes ...
- tkinter学习系列之(八) Canvas控件
目录 目录 前言 (一)carves创建方法 (二)carves的画图方法 目录 前言 由于最近想在tkinter里内嵌matplotlib,由于用到tkinter里的carves控件,先学习一下. ...
- python之GUI编程-tkinter学习
推荐几个学习网址:https://www.cnblogs.com/shwee/p/9427975.html https://cloud.tencent.com/developer/section/13 ...
- python之tkinter学习目录
前言 下面的目录结构,采用的学习视频资料是网易云课堂中[莫凡]老师的,在目录的最下面的地方给出了对应的链接! 学习是逐渐积累起来的,代码也是!下面的每一篇中的对应代码,都秉承着这样的一个理念:代码是成 ...
- tkinter学习(5)messagebox、pack、grid和place方法
1.messagebox信息弹出框 1.1 代码: import tkinter as tk #导出tk模块 import tkinter.messagebox #导出弹出信息框 #定义窗口.标题.大 ...
- tkinter学习(4)frame、pack、canvas学习
1.frame和pack学习 1.1 代码: import tkinter as tk window = tk.Tk() window.title('my window') window.geomet ...
- tkinter学习(3)scale尺度条和menu菜单
1.scale学习(尺度条)1.1 代码: #第1步:导出模块 import tkinter as tk #第2步:定义窗口,及其标题.大小和位置 win = tk.Tk() win.title('s ...
- tkinter学习(1)
1.hit_me的一个简单tk窗口学习1.1 代码: import tkinter as tk win = tk.Tk() win.title('my first window') #定义标题,如果未 ...
随机推荐
- Django中间件(勾子函数)使用
中间件 Django中的中间件是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出.中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django ...
- 剑指offer--50.滑动窗口的最大值
时间限制:1秒 空间限制:32768K 热度指数:157641 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的 ...
- shell脚本实例三
练习一:获得连通主机的ip和hostname1.脚本编写 vim checkhost.sh #!/bin/bashAuto_conn(){/usr/bin/expect << EOFse ...
- zabbix_agent中使用.pgpass
在配置zabbix过程中,使用了.pgpass 原理: psql -h 192.168.5.XXX -p 5433 -d mydb -U postgres 这个时候要输入密码:user_test 但是 ...
- RxJava 1.x 笔记:组合型操作符
最近去检查眼睛,发现度数又涨了,唉,各位猿多注意保护自己的眼睛吧! 前面学了 RxJava 的三种关键操作符: 创建型操作符 过滤型操作符 变换型操作符 读完本文你将了解第四种(组合型操作符): 组合 ...
- python常用模块之time&datetime模块
python常用模块之time&datetime模块 在平常的代码中,我们经常要与时间打交道.在python中,与时间处理有关的模块就包括:time和datetime,下面分别来介绍: 在开始 ...
- 【剑指offer】二叉树的子结构,C++实现(递归)
原创博文,转载请注明出处! <牛客链接> 1.题目 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:约定空树不是任意一个树的子结构) 图1.二叉树A和二叉树B 2.思路(递归) ...
- Java受检异常和不受检异常
Java异常有checked exception(受检异常)和unchecked exception(不受检异常), 编译器在编译时,对于受检异常必须进行try...catch或throws处理,否则 ...
- JS实现浏览器打印、打印预览
1.JS实现打印的方式方式一:window.print()window.print();会弹出打印对话框,打印的是window.document.body.innerHTML中的内容,下面是从网上摘到 ...
- BZOJ2090: [Poi2010]Monotonicity 2【线段树优化DP】
BZOJ2090: [Poi2010]Monotonicity 2[线段树优化DP] Description 给出N个正整数a[1..N],再给出K个关系符号(>.<或=)s[1..k]. ...