首页 > 其他分享 >GPT的tkinter学习之路 (1)

GPT的tkinter学习之路 (1)

时间:2024-07-12 20:11:13浏览次数:14  
标签:10 tkinter mainloop 学习 grid tk GPT root

这是一份文档来记录自己入门python图形化(tkinter)开发的过程(o′┏▽┓`o) just a noob here

本文的学习路径基于GPT,命令GPT充当老师,并给出示例

2024/7/11

Task1:创建主窗口

import tkinter as tk

# 创建主窗口
root = tk.Tk()
root.title("Tkinter 基础窗口")
root.geometry("400x300")  # 设置窗口大小为400x300像素

# 运行主事件循环
root.mainloop()

Attention:

注意,loop因为是循环的意思,window.mainloop就会让window不断的刷新,如果没有mainloop,就是一个静态的window,传入进去的值就不会有循环,mainloop就相当于一个很大的while循环,有个while,每点击一次就会更新一次,所以我们必须要有循环

所有的窗口文件都必须有类似的mainloop函数,mainloop是窗口文件的关键的关键。

Task2:添加和管理组件

import tkinter as tk

# 创建主窗口
root = tk.Tk()
root.title("Tkinter 组件示例")
root.geometry("400x300")

# 创建一个标签
label = tk.Label(root, text="Hello, Tkinter!")
label.pack(pady=10)

# 按钮点击事件的处理函数
def on_button_click():
    label.config(text="Button Clicked!")

# 创建一个按钮
button = tk.Button(root, text="Click Me", command=on_button_click)
button.pack(pady=10)

# 运行主事件循环
root.mainloop()

预期效果:

  • 创建一个标签,在按钮被点击后标签改变

Attention:

  • 按钮的command对应的是函数名称,而不是函数,函数名称不带括号,函数带括号,参见这篇
 1 def  bracket(data):
 2 
 3     return data
 6 
 7 if __name__ == '__main__':
 8 
 9     # 不带括号调用的结果:<function bracket at 0x0000000004DD0B38>,a是整个函数体,是一个函数对象,不须等该函数执行完成
10 
11     a = bracket
12 
13     print a
14 
15     # 带括号调用的结果:6 ,b是函数执行后返回的值6,须等该函数执行完成的结果
16 
17     b = bracket(6)
18 
19     print b
  • 注意到这里的pack()命令,这是一种布局方法,tkinter提供三种布局,除了pack以外,还有grid和place

Task3:使用 grid 布局

import tkinter as tk

# 创建主窗口
root = tk.Tk()
root.title("Tkinter Grid 示例")
root.geometry("300x200")

# 创建并放置用户名标签
username_label = tk.Label(root, text="Username:")
username_label.grid(row=0, column=0, padx=10, pady=10)

# 创建并放置用户名输入框
username_entry = tk.Entry(root)
username_entry.grid(row=0, column=1, padx=10, pady=10)

# 创建并放置密码标签
password_label = tk.Label(root, text="Password:")
password_label.grid(row=1, column=0, padx=10, pady=10)

# 创建并放置密码输入框
password_entry = tk.Entry(root, show="*")
password_entry.grid(row=1, column=1, padx=10, pady=10)

# 按钮点击事件的处理函数
def on_login_click():
    print("Username:", username_entry.get())
    print("Password:", password_entry.get())

# 创建并放置登录按钮
login_button = tk.Button(root, text="Login", command=on_login_click)
login_button.grid(row=2, column=0, columnspan=2, pady=10)

# 运行主事件循环
root.mainloop()

预期效果:

  • 格式形如:用户:文本框(用于输入用户名)
  • 输出文本框中的内容

Attention:

  • grid布局将整个窗口看作是一个表格,根据列和行来确定元素的位置 参见这篇
  • 这里有一点需要大家要特别注意,在一个程序中不能同时使用 pack() 和 grid() 方法,这两个方法只能二选一,否则程序会运行错误。

  • 当使用 grid 函数布局的时,其实就是为各个控件指定行号、列号的过程,我们不需要为每个单元格指定大小,因为 grid 会为每个单元格自动设置一个适合的尺寸。

标签:10,tkinter,mainloop,学习,grid,tk,GPT,root
From: https://www.cnblogs.com/AusarPu/p/18299286

相关文章

  • 深度学习:从数据采集到模型测试的全面指南
    摘要随着人工智能和大数据技术的迅猛发展,深度学习已成为解决复杂问题的有力工具。然而,从项目启动到模型部署,包含了数据处理和模型研发的多个环节,每个环节的细致和严谨性直接决定了最终模型的性能和可靠性。本论文详细探讨了大数据和深度学习项目的研发流程,包括数据采集、数......
  • python每日学习4:函数的定义和各类参数定义与用法
    目录目录一、函数的定义二、参数的定义和用法1、必选参数2、默认参数3、可变参数4、关键字参数5、命名关键字参数三、参数在实际操作中的要求一、函数的定义1、函数代码块以def关键词开头,后接函数名称和圆括号()2、在圆括号内定义传入参数3、函数的第一行语句可以......
  • Activity工作流引擎学习笔记(一)
    工作流的概念  工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。工作流管理系统(WorkflowManagem......
  • 【学习记录】”搭建属于自己的博客论坛“
        我们这里搭建的博客论坛是Discuz论坛。    1.准备前置工作        Discuz论坛安装在Linux的CentOS7上(这里暂时不考虑买服务器,因为买了的效果和我接下来学习的步骤基本类似,如果有需要可自行购买。)对于纯小白来说我们的前置工作是下载一个VMware......
  • 我的MYSQL学习心得, 自定义存储过程和函数
    转载:https://www.cnblogs.com/lyhabc/p/3793524.html我的MYSQL学习心得(一)简单语法我的MYSQL学习心得(二)数据类型宽度我的MYSQL学习心得(三)查看字段长度我的MYSQL学习心得(四)数据类型我的MYSQL学习心得(五)运算符我的MYSQL学习心得(六)函数我的MYSQL学习心得(七)查询我的MYSQ......
  • 深度学习入门指南:从基础概念到实战项目
    今天我们来聊聊深度学习。这名字听起来可能有点吓人,但其实它并没有那么神秘。就像我们小时候学骑自行车,一开始可能会摔倒几次,但一旦掌握了平衡,你就会觉得骑车是一件很自然的事情。深度学习也是这样,只要你愿意花点时间去了解和实践,很快就能上手。什么是深度学习?我们先来拆解一......
  • 【视频讲解】Python比赛LightGBM、XGBoost+GPU和CatBoost预测学生在游戏学习过程表现|
    全文链接:https://tecdat.cn/?p=36990原文出处:拓端数据部落公众号分析师:QiZhang背景基于游戏进行学习能让学校变得有趣,这种教育方法能让学生在游戏中学习,使其变得有趣和充满活力。尽管基于游戏的学习正在越来越多的教育环境中使用,但能用应用数据科学和学习分析原理来......
  • Qt/QML学习-动画元素
    QML学习动画元素例程视频讲解代码main.qmlimportQtQuick2.15importQtQuick.Window2.15Window{width:640height:480visible:truetitle:qsTr("HelloWorld")Rectangle{id:rectwidth:50height:50......
  • 【人工智能书籍】TensorFlow机器学习实战指南(推荐)
    今天又来给大家推荐一本人工智能方面的书籍<TensorFlow机器学习实战指南>。TensorFlow是一个开源机器学习库。本书从TensorFlow的基础开始介绍,涉及变量、矩阵和各种数据源。之后,针对使用TensorFlow线性回归技术的实践经验进行详细讲解。后续章节将在前文的基础上讲述神经网......
  • beego学习
    安装:goget-ugithub.com/beego/bee/v2goinstallgithub.com/beego/bee/v2在~/.bash_profile添加可执行文件的环境变量:exportPATH=/Users/dxm/go/bin:$PATH快速开始:快速开始一个web服务router:指定url调用哪个控制器controller:解析url请求的参数,调用业务代码,将参数传递......