Python3.7 Tkinter基础使用(三)

Tkinter 布局设置
  1. pack(逐项布局)
    def sPinbox(self, master):
        Spinbox(master, from_=0, to=10, increment=0.5, wrap=TRUE).pack(fill=BOTH, expand=TRUE)
        Spinbox(master, values=('harry', '~ben~', 'lily_w', '黄小明'), wrap=TRUE).pack(fill=BOTH, expand=TRUE)

在这里插入图片描述

  1. grid(类似html的table布局,也有rowspan、colspan的合并单元格参数)
    def registEr(self, master):
        Label(master, text='用户名').grid(row=0, sticky=W)
        Label(master, text='密码').grid(row=1, sticky=W)

        self.photo = PhotoImage(file='! Load Tutorial.png')
        Label(master, image=self.photo).grid(row=0, column=2, rowspan=2, padx=5, pady=5)

        e1 = Entry(master)
        e1.grid(row=0, column=1)
        e2 = Entry(master, show='*')
        e2.grid(row=1, column=1)

        def reg():
            s1, s2 = e1.get(), e2.get()
            if s1 == '111' and s2 == '222':
                c['text'] = '登陆成功'
            else:
                c['text'] = '用户名或密码错误'
                e1.delete(0, len(s1))
                e2.delete(0, len(s2))
        Button(text='提交', width=10, command=reg).grid(row=2, columnspan=3, pady=5)
        c = Label(master, text='请输入登录密码')
        c.grid(row=2, column=0)

在这里插入图片描述

  1. place(居中用,相对父组件调位)
    def plaCe(self, master):
        def callback():
            print('正中靶心')
        n = 1
        for i in ['red', 'green', 'yellow']:
            n -= 0.25
            Label(master, bg=i).place(relx=0.5, rely=0.5, relheight=n, relwidth=n, anchor=CENTER)
        Button(master, text='点击', command=callback).place(relx=0.5, rely=0.5, anchor=CENTER)

在这里插入图片描述

place的方法说明
place_configure(**options)跟place()一样
place_forget()1、将组件从屏幕中隐藏
2、可以通过其它布局管理器显示已“删除”的组件
place_info()以字典的形式返回当前 place 的选项
place_slaves()1、以列表的形式返回该组件的所有子组件
2、该方法仅适用于父组件
slaves()跟place_slaves()一样
Messagebox
from tkinter import *
from tkinter import messagebox

class App:
    def __init__(self, master):
        self.mEssageBox(master)

    def mEssageBox(self, master):
        def asky():
            if self.n > len(ls) - 1:
                self.n = 0
            eval(f"messagebox.{ls[self.n]}('Hello World', '今天爱我吗?')")
            self.n += 1

        ls = ['askokcancel', 'askquestion', 'askretrycancel', 'askyesno', 'showerror', 'showinfo']
        self.n = 0
        Button(master, text='问我吧', command=asky).place(relx=.5, rely=.5, anchor=CENTER)

if __name__ == '__main__':
    root = Tk()
    root.title('TkPainter')
    app = App(root)
    root.mainloop()

在这里插入图片描述
filedialog(文件对话框)
filedialog模块提供了两个函数:askopenfilename(**option) 和 asksaveasfilename(**option),分别用于打开和另存文件。
参数
两个函数可供设置的选项是一样的,如下:

选项含义
defaultextension1、指定文件后缀
2、例如:defaultextension=“.jpg",那么当用户输入一个文件名“Harry”,文件名会自动添加后缀“Harry.jpg"
3、注意:如果用户输入文件名包含后缀,那么这选项不生效
filetypes1、指定筛选文件类型的下拉菜单选项
2、该选项的值由2元祖构成的列表
3、每个2元祖由(类型名,后缀)构成,例如:filetypes=[(“PNG”,".png"),(“JPG”,’.jpg"),(“GIF”,".gif")]
initialdir1、指定打开/保存文件的默认路径
2、默认路径是当前文件夹
parent1、如果不指定该选项,那么对话框默认显示在根窗口上
2、如果想要
title指定文件对话框的标题栏文本
from tkinter import *
from tkinter import filedialog

class App:
    def __init__(self, master):
        self.fhsoj(master)

    def fhsoj(self, master):
        def openf():
            fileName = filedialog.askopenfilename(filetypes=[('PNG', '.png'), ('JPG', '.jpg'), ('GIF', '.gif')])
            print(fileName)
            
        Button(master, text='打开文件', command=openf).pack()

if __name__ == '__main__':
    root = Tk()
    root.title('TkPainter')
    app = App(root)
    root.mainloop()

在这里插入图片描述
补充:

Python.tkinter.打开对话框选择文件文件夹
"""
tkinter.filedialog.asksaveasfilename():选择以什么文件名保存,返回文件名
tkinter.filedialog.asksaveasfile():选择以什么文件保存,创建文件并返回文件流对象
tkinter.filedialog.askopenfilename():选择打开什么文件,返回文件名
tkinter.filedialog.askopenfile():选择打开什么文件,返回IO流对象
tkinter.filedialog.askdirectory():选择目录,返回目录名
tkinter.filedialog.askopenfilenames():选择打开多个文件,以元组形式返回多个文件名
tkinter.filedialog.askopenfiles():选择打开多个文件,以列表形式返回多个IO流对象
"""
if __name__ == '__main__':
    try:
        pass
    except Exception as e:
        print(e)

颜色选择器

from tkinter import *
from tkinter import colorchooser

class App:
    def __init__(self, master):
        self.ColorCho(master)

    def ColorCho(self, master):
        def calbac():
            filename = colorchooser.askcolor()
            print(filename)
        Button(master, text='选择颜色', command=calbac).pack()

if __name__ == '__main__':
    root = Tk()
    root.title('TkPainter')
    app = App(root)
    root.mainloop()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值