首页 > 编程语言 > 详细

Python GUI之 Tkinter -1

时间:2021-02-01 21:53:12      阅读:29      评论:0      收藏:0      [点我收藏+]

第一章 概述

背景

tkinter是Tk的python接口,Tk是Tcl/Tk的GUI工具包。Tcl是脚本语言,Tk是图形库,跨平台。

tkinter的优势 简单易学 跨平台 标准库无需安装 tcl解释器用C语言写成。

简单概念

GUI编程得三个核心问题:  屏幕上应显示哪些组件、组件如何放置、组件如何交互

import tkinter as tk

root=tk.Tk()

root.mainloop()

import tkinter as tk

root=tk.Tk()

lb=tk.Label(root,text=”Label”)

lb.pack()

root.mainloop()

import tkinter as tk

root=tk.Tk()

bt=tk.Button(root,text=”Button”)

lb.pack()

root.mainloop()

布局管理 pack布局 grid布局 place布局

事件和回调 用户按下键或者鼠标时候,程序做出反应,示例如下

import tkinter as tk

def callback():

print(‘被点击了’)

root=tk.Tk()

tk.Button(root,text=’点击’,command=callback).pack()

root.mainloop()

给初学者建议

轻量级 够用 掌握常用 不常用的查文挡 重点布局学习 不盯着细节

第二章 基础入门

基本控件1

一共是6个基本控件学习: 标签 按钮 多选框 输入框 单选框

标签Label

from tkinter import *
root=Tk()
Label(root,text=‘我是标签‘).pack()
Label(root,bitmap=‘error‘).pack()
root.mainloop()

python的image属性仅支持gif pgm ppm格式

bitmap支持xbm格式

设置方法:PIL库过时了,用Pillow库

photo=PhontoImage(file=’’image.gif)

bmp=BitmapImage(file=’logo.xbm’)

label=Label(root,image=photo)

如果要用其它格式图片,下载并按照Pillow库后:

from tkinter import *
from PIL import Image,ImageTk
root=Tk()
ima=Image.open(‘.\\wo.jpg‘)
photo=ImageTk.PhotoImage(ima)
Label(root,text=‘我是标签‘).pack()
Label(root,image=photo).pack()
root.mainloop()

贴纸:you-get库使用

pip install you-get  #安装库

you-get -i 网址    #对视频进行解析

you-get -o 要保存位置 网址

Pychram中ctrl+/ 批量用#注释代码

保存不同画质方法

you-get -i 网址    #对视频进行解析 关注-format

you-get --format == mp4hd -o D:/ 网址

You-get -u 网址  #得到真实地址

you-get --json 网址  #得到json格式信息

贴纸:http.server服务器 搭建本地局域网  ctrl+C结束

python -m http.server #默认端口 8000      结果:Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

python -m http.server 8888 #指定端口8888  结果:Serving HTTP on 0.0.0.0 port 8888 (http://0.0.0.0:8888/) ...

ipconfig/all 可以获取本机ip地址

基本控件2

Button按钮

from tkinter import *

tk=Tk()

def onclick():

    print(‘how are you‘)

Button(tk,text=‘确定‘,command=onclick).pack()

tk.mainloop()

Checkbutton多选按钮

from tkinter import *

def sel():

    val=‘多选按钮状态:‘+ str(v.get())

    print(val)

tk=Tk()

v=IntVar()

Checkbutton(tk,text=‘男人‘,variable=v,command=sel).pack()

tk.mainloop()

方法 deselect()清楚状态 flash()闪烁 invoke()获操作

select()设置为选中 toggle()反选

Entry单行输入文本框     text属性无效

from tkinter import *

tk=Tk()

val=StringVar() #跟踪变量

val.set(‘输入。。。‘)

Entry(tk,textvariable=val).pack()

tk.mainloop()

ent=Entry(tk,show=’*’)

ent.pack()

还有许多参数和方法,用到再查询。

Radiobutton单选按钮  有组的概念

from tkinter import *

def sel():

    val=‘单选按钮状态:‘+ str(v.get())

    print(val)

tk=Tk()

v=IntVar()

Radiobutton(tk,text=‘男‘,variable=v,value=1,command=sel).pack()

Radiobutton(tk,text=‘女‘,variable=v,value=2,command=sel).pack()

tk.mainloop()

基本控件3

Scale 滑块组件

from tkinter import *

tk=Tk()

v=IntVar()

Scale(tk,orient=‘horizonta‘,variable=v,from_=0,to=200,tickinterval=50,length=200).pack()  # vertical水平方向

tk.mainloop()

跟踪控件的值 为了响应控件值变化 Tkinter提供自己的类,它们可以用来跟踪这些小控件的值。

字符型 my_string=tk.StringVar()

布尔型 ticked_yes=tk.BooleanVar()

整数型 group_choice=tk.IntVar()

浮点型 volume=tk.DoubleVar()

将变量类与控件关联起来
tk.Entry(root,textvariable=my_string)

tk.Checkbutton(root,text=’选我’,variable=ticked_yes)

tk.Radiobutton(root,text=’点我’,variable=group_choice)

tk.Scale(root,label=’音量’,variable=volume)

from tkinter import *

from PIL import Image,ImageTk

def fun1():

    print(‘确认按钮被点击了‘)

def sel():

    mes="多选按钮状态改变"

    print(mes)

def shut():

    mess=‘单选按钮选择:‘+str(one.get())

    print(mess)

#窗口建立

tk=Tk()

tk.title(‘我的程序‘)

tk.geometry(‘400x400+500+300‘)

tk.resizable(0,0)

#文字标签

lb1=Label(tk,text=‘我是个文字标签‘)

lb1.pack()

#图片标签

img=Image.open(‘ni.bmp‘)

photo=ImageTk.PhotoImage(img)

lb2=Label(tk,image=photo)

lb2.pack()

#按钮

bt1=Button(tk,text=‘确 认‘,command=fun1)

bt1.pack()

#单行输入 账号

val=StringVar() #设置跟踪变量

val.set(‘恭喜发财‘)

en1=Entry(tk,textvariable=val)

en1.pack()

#单行输入 密码

en1=Entry(tk,show=‘*‘)

en1.pack()

#多选按钮

check1=Checkbutton(tk,text=‘唱歌‘,command=sel)

check1.pack()

#单选按钮

one=IntVar()

radio1=Radiobutton(tk,text=‘男‘,variable=one,value=1,command=shut)

radio1.pack()

radio2=Radiobutton(tk,text=‘女‘,variable=one,value=2,command=shut)

radio2.pack()

#滑块组件

x=IntVar()

sca=Scale(tk,label=‘音量‘,orient=‘horizonta‘,from_=0,to=100,tickinterval=10,length=200)

sca.pack()

#程序主循环

tk.mainloop()

https://study.163.com/course/courseLearn.htm?courseId=1209232809&share=1&shareId=1390377083#/learn/video?lessonId=1278884646&courseId=1209232809

pack布局1 略

pack布局2 略

Python GUI之 Tkinter -1

原文:https://www.cnblogs.com/tankercode/p/14358044.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!