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') #定义标题,如果未 ...
随机推荐
- VPS安装metasploit-framework
一.安装过程 在/etc/apt/sources.list添加kali源: root@localhost:~# cat >> /etc/apt/sources.list << ...
- APUE学习笔记——3.10文件共享
基本概念 内核使用3个数据结构描述一个打开的文件:进程表.文件表.V节点表 首先了解3种数据结构的概念 1 进程表 每一个进程有一个进程表.进程表里是一组打开的文件描述符,如标 ...
- SQL 测验
1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT 3.哪条 SQL 语句用于更新数据库中的数据 ...
- Xcode 9 俩个你必须知道的新功能
Xcode 9 beta 版已经可以下载了,不知道大家伙对这个新版本开发工具看法如何,最近我费了一番周折终于体验了一把,升级系统,下载Xcode,验证安装扒拉扒拉什么的,几乎搞了我一天,我做开发使用的 ...
- [Linux] Boot分区满了的处理方法 The volume "boot" has only 0 bytes disk space remaining
1.查看系统目前正在用的内核 abby@abby:~$ uname -r ..--generic 2.查看/boot保存的所有内核 abby@abby:~$ ls -lah /boot total 3 ...
- HslCommunication库的二次协议扩展,适配第三方通讯协议开发,基础框架支持长短连接模式
本文将使用一个gitHub开源的项目来扩展实现二次协议的开发,该项目已经搭建好了基础层架构,并实现了三菱,西门子,欧姆龙,MODBUS-TCP的通讯示例,也可以参照这些示例开发其他的通讯协议,并Pul ...
- Thread之七:Object里的wait、notify、notifyAll的使用方法
wait().notify().notifyAll()是三个定义在Object类里的方法,可以用来控制线程的状态 public final native void notify(); public f ...
- Android 编程 AMapLocationClientOption 类中的 setMockEnable (高德地图 com.amap.api.location.AMapLocationClientOption 中的类)
setMockEnable 高德地图中 AMapLocationClientOption 中有一个方法是设置APP是否接受模拟定位的设置,就是方法 setMockEnable //设置是否允许模拟位置 ...
- 【剑指offer】10A--求裴波那切数列的第n项,C++实现
#本文是牛客网<剑指offer>刷题笔记 1.题目 写入一个函数,输入n,输出裴波那切数列的第n项 2.思路 递归--时间和空间复杂度高 循环--时间和空间复杂度低,通过循环迭代计算第n项 ...
- Eclipse web工程 部署 三种方式 2
Eclipse web工程 部署 三种方式 2.插件 tomcat插件下载: http://www.eclipsetotale.com/tomcatPlugin.html 解压缩后, com.sysd ...