Python_面向对象_tkinter库

Posted bling-bling-star

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_面向对象_tkinter库相关的知识,希望对你有一定的参考价值。

#-- tkinter 一个跨平台的GUI库,对图形库TK的封装 可在win,linux或者mac下运行

import tkinter

# linux用命令进行tkinter安装 sudo apt-get install python3-tk(python3-tk)

root = tkinter.Tk()
root.title(‘网格布局‘)
root.minsize(300,300)
root.resizable(False,False)
# 从这写内容 #
root.mainloop()

 

#-- tkinter 布局
  pack() 方位布局
  place() 坐标布局
  grid() 网格布局

"""
  padx/pady 组件外部在x(y)方向上填充的空间大小,默认单位为像素
  ipadx/ipady 组件内部在x(y)方向上填充的空间大小,默认单位为像素
  anchor : “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(默认“center”) 控制组件方位
"""
#pack 属性
  ipadx=10,ipady=10,padx=20,pady=100,anchor="ne"

#place 绝对属性
  x = 20,y = 20,width = 50,height = 50

#place 相对属性
  relx = 0.05,rely = 0.05,relwidth = 0.2,relheight = 0.2

#grid 属性
  row = 3,column = 0,ipadx = 50,ipady = 10,padx = 10,pady = 10,columnspan = 2 rowspan = 2

=======================================================

import tkinter
# 生成一个窗口对象
root = tkinter.Tk()
# 设置窗口的标题
root.title("这是一个窗口")
# 设置窗口的大小
root.minsize(300,300) # 最小窗口大小
root.maxsize(600,600) # 最大窗口大小
# root.resizable(False,False) # 将窗口大小固定

# pack 方位布局
# ipadx 横向填充 ipady 纵向填充
# anchor:e s w n ne nw se sw(默认center) 代表方位

"""
btn1 = tkinter.Button(text="1")
btn1.pack(ipadx=10,ipady=10,padx=10,pady=10)
btn2 = tkinter.Button(text="2")
btn2.pack(idapx=10,idapy=10,padx=10,pady=10)
"""

# side属性:lef right top bottom
"""
btn1 = tkinter.Button(text="1")
btn1.pack(ipadx=10,ipady=10,padx=10,pady=10,side="left")
btn2 = tkinter.Button(text="2")
btn2.pack(ipadx=10,ipady=10,padx=10,pady=10,side="left")
"""

# place 坐标布局
"""
(1) 绝对布局
(2) 相对布局
x,y是坐标 width,height是宽度和高度
"""

# place (绝对布局)
"""
btn1 = tkinter.Button(text="1")
btn1.place(x=20,y=20,width=50,height=50)
btn3 = tkinter.Button(text="3")
btn3.place(x=160,y=20,width=50,height=50)

btn5 = tkinter.Button(text="5")
btn5.place(x=90,y=90,width=50,height=50)
btn7 = tkinter.Button(text="7")
btn7.place(x=20,y=160,width=50,height=50)

btn9 = tkinter.Button(text="9")
btn9.place(x=160,y=160,width=50,height=50)
"""

# place(相对布局)
"""
btn2 = tkinter.Button(text="2")
btn2.place(relx=0.3,rely=0.05,relwidth=0.2,relheight=0.2)

btn4 = tkinter.Button(text="4")
btn4.place(relx=0.05,rely=0.3,relwidth=0.2,relheight=0.2)
btn6 = tkinter.Button(text="6")
btn6.place(relx=0.55,rely=0.3.relwidth=0.2,relheight=0.2)

btn8 = tkinter.Button(text="8")
btn8.place(relx=0.3,rely=0.55,relwidth=0.2,relheight=0.2)
"""

# gird 网格布局
"""
btn1 = tkinter.Button(text="1")
btn1.grid(row=0,column=0,ipadx=10,ipady=10,padx=10,pady=10)
btn2 = tkinter.Button(text="1")
btn2.grid(row=0,column=1,ipadx=10,ipady=10,padx=10,pady=10)
btn3 = tkinter.Button(text="1")
btn3.grid(row=0,column=2,ipadx=10,ipady=10,padx=10,pady=10)
"""
# columnspan 列合并(左右合并)
# rowspan 行合并(上下合并)
"""
btn0 = tkinter.Button(text="0")
btn0.grid(row=3,column=0,ipadx=120,ipady=10,padx=10,pady=10,columnspan=3)
btn_echo = tkinter.Button(text="=")
btn_echo.grid(row=0,column=3,ipadx=10,ipady=120,padx=10,pady=10,rowspam=3)
"""

# frame
frame1 = tkinter.Frame(root,width=300,heght=50,bg="red")
frame1.pack(pady=5)

btn1 = tkinter.Button(frame1,text="1")
btn1.pack(side="left",ipadx=5,ipady=10)
btn2 = tkinter.Button(frame1,text="2")
btn2.pack(side="left",ipadx=5,ipady=10)
btn3 = tkinter.Button(frame1,text="3")
btn3.pack(side="left",ipadx=5,ipady=10)

# 固定显示窗口 (涉及队列)
root.mainloop()

"""
pack 方位布局
参数:ipadx ipady padx pady anchor side
place 坐标布局
绝对布局参数:x y padx pady
相对布局参数:relx rely relwidth relheight
gird 网格布局
参数:row column ipadx ipady padx pady rowspan columnspan
"""

=======================================================

#Frame 属性
  #--划分页面
    frame1 = tkinter.Frame(root,height = 50,width = 300)
    frame1.pack_propagate(0) # 按照原定义宽高分布,不会随着其中内容的改变而改变
    frame1.pack(pady = 10)
    #在第一个frame中摆放组件
    btn = tkinter.Button(frame1,text = ‘1‘).pack(side = ‘left‘,padx = 20)

  #--各种组件
"""
公共属性:
  text 设置文字
  bg 背景色
  fg 前景色
  bd 边框
  width 宽度
  height 高度
  anchor 按钮中的文字方位 e s w n nw ne sw se 默认center
  font 类型[,大小,粗细,斜体] 例: font= (‘黑体‘,20,‘bold‘,‘italic‘)
  command 点击按钮后触发的动作(函数)  
  变量.set(参数) 设置值
  变量.get() 获取值
"""


#--基本按钮 button
"""
  button属性:
  state 设置状态 disabled 不能用 normal 正常
"""

#--选择按钮 Checkbutton
"""
  Checkbutton 属性:
  variable 指定变量
  onvalue 选中值
  offvalue 没选中值
  0值在哪代表默认状态是什么(选中 没选中)
  tkinter.IntVar() tkinter.StringVar() 创建变量方式整型或字符串
"""

#--单选按钮 Radiobutton
"""
  #justify 设置内置多行文字的对其方式 left center right
"""

#--普通文本框 Entry
"""
  #密码框 show 设置密码数框的覆盖符号
  #设置变量textvariable:字符串 StringVar 整形IntVar 浮点型DoubleVar 布尔值BooleanVar 先设置变量在文本框
  #selectbackground 设置选中内容的背景色 selectforeground 选中内容的前景色
  #state 设置状态 disabled 不能用 normal 正常 readonly 只读
"""

#--多行文本 Text
"""
  多行文本 除了show与普通文本框属性一致
"""

#--标签组件Label
"""
  标签组件Label 除了show和选中设置 与普通文本框属性一致
"""


#--菜单组件
  allmenu = tkinter.Menu()
#添加分割线
  edit.add_separator()
#向子菜单中添加选项卡
  edit = tkinter.Menu(tearoff = 0)
  edit.add_command(label = ‘退出‘,command = demo)
#将子菜单加入总菜单
  allmenu.add_cascade(menu = edit,label = ‘编辑‘)
#摆放总菜单
  root.config(menu = allmenu)

 

#--消息框 messagebox
"""
  属性:message title
"""
messagebox:
  showinfo 显示信息对话框
  showwarning 提示警告对话框
  showerror 显示错误对话
  askquestion 问题对话框
  askokcancel 确定还是取消对话框
  askyesno 是不是对话框
  askretrycancel 重试或者取消对话框


#--简易对话框simpledialog
"""
  属性:title ,prompt,initialvalue
"""
simpledialog:
  askstring 字符串对话框
  askinteger 整形对话框
  askfloat 浮点数对话框


#--文件对话框filedialog
filedialog:
  #askopenfilename 请求文件名称对话框
  #askdirectory 请求文件夹对话框
  #asksaveasfilename 保存文件对话框
"""
  title = ‘请选择文件保存路径‘,
  initialdir = ‘/‘,
  initialfile = ‘默认文件名称‘,
  filetypes =((‘文本文件‘,‘*.txt‘),(‘word文件‘,‘*.doc‘),(‘任意文件‘,‘*.*‘))
"""


#--顶级窗口 toplevel
  #withdraw 关闭窗口
  #iconify 隐藏窗口
  #deiconify 显示窗口

 



































































































以上是关于Python_面向对象_tkinter库的主要内容,如果未能解决你的问题,请参考以下文章

python 面向对象调用问题

面向对象简易计算器

课堂笔记 ---- 面向对象压缩软件

实现面向对象的计算器

python面向对象的一个问题

Python面向对象