tkinter GUI编程(1)

今天主要了解了一下tkinter GUI编程,一个很有趣的东西,梳理了部分笔记,其他明天继续po出来~

1. 组件分类:buttoncanvascheckbuttonentry(单行文本框)、framelabel(标签)、listbox(列表框)、menumenubuttonmessage(类似label,但可根据自身大小将文本换行)、radiobutton(单选框)、scale(滑块)、scrollbartext(多行文本框)、toplevel(用来创建子窗口容器组件)

2. 组件布局:

组件的pack方法可使用以下参数设置组件位置属性

After  置于其他组件之后

Anchor   组件的对齐方式(n——顶对齐;s——底对齐;w——左对齐;e——右对齐)

Before  置于其他组件之前

Side  组件在主窗口的位置(可以为topbuttonleftright

    组件grid方法可使用以下参数设置组件位置属性

Column  组件所在的列起始位置

Columnspam  组件的列宽

Row  组件所在的行起始位置

Rowspam  组件的行宽

    组件place方式可使用以下参数设置组件位置属性

Anchor  组件对齐方式

X    组件左上角的x坐标

Y    组件左上角的y坐标

Relx  组件相对于窗口的x坐标(0-1间小数)、

Rely  组件相对窗口的y坐标(0-1间小数)

Width   组件宽度

Height   组件高度

Relwidth  组件相对于窗口的宽度(0-1间小数)

Relheight  组件相对于窗口的高度(0-1间小数)

3. 文本框:

Background  文本框背景色

Borderwidth  文本框边框宽度

Font  文本框中字体

Foreround  文本框前景色

Selectbackground 选定文本的背景色

Selectforeground  选定文本的前景色

Show   文本框中显示的字符(如密码框可设为*

State  文本框的状态

Width  文本框的宽度

4. 标签

Anchor   标签中文本位置

Bitmap   标签中的位图

Height   标签的高度

Image    标签中的图片

Justify   标签中多行文本的对齐方式

Text     标签中的文本,可使用\n表示换行

背景色、前景色、边框宽度、字体等设置同文本框

5. 菜单和复选框

Value  组件被选中后关联变量的值

Variable   组件所关联的变量

其他同标签

最后,来个自己写的小代码

from tkinter import *
from PIL import Image, ImageTk 

class Window(Frame):
 
    def __init__(self, master= None):

        Frame.__init__(self, master)
        self.master = master
        self.init_window()

    def init_window(self):
        #设置窗口标题
        self.master.title("test")
        #设置根据文本自适应窗体大小
        self.pack(fill=BOTH, expand=1)
        #创建按钮
        #添加一个command,进行事务处理,这里点击退出,执行退出程序
        quitButton = Button(self, text="exit",command=self.client_exit)
        quitButton.place(x=0,y=0)

        menu = Menu(self.master)
        self.master.config(menu=menu)

        file=Menu(menu)
        file.add_command(label='Save')
        menu.add_cascade(label='File',menu=file)

        edit = Menu(menu)
        edit.add_command(label='Undo')
        edit.add_command(label='show Img',command=self.showImg)
        edit.add_command(label='show txt',command=self.showTxt)
        menu.add_cascade(label='Edit',menu=edit)


    #响应事务
    def client_exit(self):
        exit()

    def showImg(self):
        load=Image.open(r'C:\Users\cheetah\Desktop\test.jpg')
        render=ImageTk.PhotoImage(load)
        img=Label(self,image=render)
        img.image=render
        img.place(x=1,y=1)

    def showTxt(self):
        text = Label(self,text='welcome to python')
        text.pack()

#Tk()是一个创建窗口的类
root = Tk()
#设置窗体大小
root.geometry("400x300")
#把root这个顶层窗体作为一个对象传入我们定义的window类
app = Window(root)
#一直让窗体显示在顶层,除非有新的事件干扰
root.mainloop()
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值