Python Tkinter 框架学习

Python

This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.

Tkinter 框架学习

GUI Tkinter 框架结构

image

常用组件汇总列表

image

image

面向对象的方式写 GUI 框架的经典实例

image

具体实现代码

#!/usr/bin/python python3
# coding=utf-8
'''
Author: whalefall
Date: 2021-07-04 16:50:10
LastEditTime: 2021-07-04 17:25:55
Description: 利用面向对象的方式写一个经典的 GUI 程序
'''
from tkinter import *
# Frame: 一个布局容器,里面可以放置组件.
from tkinter import Frame
# messagebox: 一个消息框组件
from tkinter import messagebox


class Application(Frame):
    '''
    通过 Application 类组织整个 GUI 程序,继承自 Frame.
    '''

    def __init__(self, master=None):
        '''
        初始化类,要传入根窗口对象.
        '''
        # 调用父类 Frame 的初始化方法
        super().__init__(master)
        # 将 master(传入的根窗口对象) 添加到 APP 类的属性
        # 使 self 拥有 root 根窗口对象的所有方法.
        self.master = master

        self.pack()  # 布局管理器,用于添加组件到布局
        # 创建各组件
        self.createWidget()

    def createWidget(self):
        '''
        创建一个组件,在初始化类中调用
        '''
        # 用父类的 Master 即 self 对象创建一个按钮组件
        self.btn1 = Button(self)
        self.btn1["text"] = "点击提交"  # 设置按钮文字属性
        self.btn1["command"] = self.lover  # 点击按钮所执行的函数
        self.btn1.pack()  # 添加到布局管理器

        # 创建一个退出按钮
        # command: 命令 (点击按钮要执行的函数)
        # root: 全局变量(根窗口)
        # destroy 方法: 消灭所有窗体(退出程序)
        self.btnQuit = Button(self, text="退出", command=root.destroy)
        self.btnQuit.pack()  # 添加到布局管理器

    def lover(self):
        '''
        点击 btn1 所执行的函数
        '''
        messagebox.showinfo("表白信息", "颖怡我喜欢你.")


if __name__ == "__main__":
    root = Tk()  # 创建主窗体
    root.geometry("400x100+200+300")  # 设置程序长宽位置
    root.title("面向对象经典 GUI 程序")

    app = Application(master=root)

    root.mainloop()  # 调用组件的方法,进入事件循环.

Label ( 标签 ) 用法

image

image

组件 Option 选项设置

image

选项大全

image

image

Button Anchor 位置控制

image

Entry StrinngVar 输入框

输入框接收变量的类型

image

属性的双向关联

image-20210705223506326

Author: WhaleFall

Permalink: https://www.whaleluo.top/python/python-tkinter-gui/

文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。

Comments