Python tkinter之Frame(容器)

2020-12-17 22:33

阅读:526

标签:utf-8   背景颜色   title   sid   tle   for   color   pytho   ram   

1、Frame的基本属性

# -*- encoding=utf-8 -*-

import tkinter
from tkinter import *

if __name__ == __main__:
    win = tkinter.Tk()  # 窗口
    win.title(南风丶轻语)  # 标题
    screenwidth = win.winfo_screenwidth()  # 屏幕宽度
    screenheight = win.winfo_screenheight()  # 屏幕高度
    width = 500
    height = 400
    x = int((screenwidth - width) / 2)
    y = int((screenheight - height) / 2)
    win.geometry({}x{}+{}+{}.format(width, height, x, y))  # 大小以及位置

    frame = Frame(
            master=win,  # 父容器
            bg=yellow,  # 背景颜色
            relief=groove,  # 边框的3D样式 flat、sunken、raised、groove、ridge、solid。
            bd=3,  # 边框的大小
            height=100,  # 高度
            width=100,  # 宽度
            padx=1,  # 内间距,字体与边框的X距离
            pady=1,  # 内间距,字体与边框的Y距离
            cursor=circle,  # 鼠标移动时样式 arrow, circle, cross, plus...
            )
    frame.pack()

    win.mainloop()

技术图片

 2、不同的Frame使用不同的布局

# -*- encoding=utf-8 -*-

import tkinter
from tkinter import *

if __name__ == __main__:
    pass
    w = tkinter.Tk()  # 窗口
    w.title(测试)  # 标题
    w.geometry(200x100+30+30)  # 大小以及位置
    frame = Frame()  # 定义容器
    Button(
        master=frame,  # 父容器为frame
        text=容器1上的按钮,  # 文本
    ).pack()
    frame2 = Frame()  # 定义容器
    Button(
        master=frame2,  # 父容器为frame2
        text=容器2上的按钮,  # 文本
    ).grid(row=0, column=0)
    Label(frame2, text=容器2上的Lable, bg=yellow, fg=pink).grid(row=0, column=1)
    frame.pack()
    frame2.pack()
    w.mainloop()

技术图片

 3、容器自适应

备注:

①设置容器Frame的高度和宽度好,可以看到同大小的Frame,但是在Frame上添加组件,Frame就自适应了,width和height就失效了。

# -*- encoding=utf-8 -*-

import tkinter
from tkinter import *

if __name__ == __main__:
    win = tkinter.Tk()  # 窗口
    win.title(南风丶轻语)  # 标题
    screenwidth = win.winfo_screenwidth()  # 屏幕宽度
    screenheight = win.winfo_screenheight()  # 屏幕高度
    width = 500
    height = 400
    x = int((screenwidth - width) / 2)
    y = int((screenheight - height) / 2)
    win.geometry({}x{}+{}+{}.format(width, height, x, y))  # 大小以及位置

    frame1 = Frame(
            master=win,  # 父容器
            bg=yellow,  # 背景颜色
            relief=groove,  # 边框的3D样式 flat、sunken、raised、groove、ridge、solid。
            bd=3,  # 边框的大小
            height=100,  # 高度
            width=100,  # 宽度
            padx=1,  # 内间距,字体与边框的X距离
            pady=1,  # 内间距,字体与边框的Y距离
            cursor=circle,  # 鼠标移动时样式 arrow, circle, cross, plus...
            )
    frame1.pack()

    frame1 = Frame(
            master=win,  # 父容器
            bg=yellow,  # 背景颜色
            relief=groove,  # 边框的3D样式 flat、sunken、raised、groove、ridge、solid。
            bd=3,  # 边框的大小
            height=100,  # 高度
            width=100,  # 宽度
            padx=1,  # 内间距,字体与边框的X距离
            pady=1,  # 内间距,字体与边框的Y距离
            cursor=circle,  # 鼠标移动时样式 arrow, circle, cross, plus...
            )
    frame1.pack()
    # 不放置组件在frame上,width和height都生效,放置组件后,自适应组件大小了

    Label(frame1, text=标签, width=3, height=1).pack(side=TOP)
    Button(frame1, text=按钮, ).pack(side=TOP)
    frame2 = Frame(relief=g, bg=red)
    frame2.pack()
    Label(frame2, text=标签, ).grid(row=0, column=0)
    Button(frame2, text=按钮, ).grid(row=0, column=1)

    win.mainloop()

技术图片

 

Python tkinter之Frame(容器)

标签:utf-8   背景颜色   title   sid   tle   for   color   pytho   ram   

原文地址:https://www.cnblogs.com/rainbow-tan/p/14104025.html


评论


亲,登录后才可以留言!