python中tkinter实现GUI程序:三个实例

python中tkinter实现GUI程序

  • 写在最前面
  • Python中使用Tkinter实现GUI程序的基本元素
    • Tkinter简介
    • 基本元素
      • 1. 根窗口(Root Window)
      • 2. 小部件(Widgets)
      • 3. 布局管理
      • 4. 事件处理
  • 1.用 tkinter实现一个简单的 GUI程序,单击“click”按钮,在终端打印出“hello world”。
  • 2.设计一个窗体,模拟登录界面,当用户输入正确的用户名和密码时提示“登录成功”,否则提示“用户名或密码错误”。
  • 3.创建如图11-35所示的界面,输入作品和作者信息后,单击“读取信息”按钮将输入的信息在下方的输入框中显示,单击“退出”按钮退出程序的执行。
  • 结语

写在最前面

Python作为一种多功能、易于学习的编程语言,不仅仅在数据科学、机器学习、网络开发等领域大放异彩,也在图形用户界面(GUI)开发中扮演着重要角色。其中,Tkinter库作为Python的标准GUI库,以其简单易用而广受欢迎。


一位粉丝希望了解,如何实战python中tkinter如何实现GUI程序。

在这里插入图片描述

Python中使用Tkinter实现GUI程序的基本元素

本小节将介绍如何使用Tkinter创建基本的GUI程序,涵盖了Tkinter的核心元素,并提供实用的示例和技巧,让你迅速入门。

Tkinter简介

Tkinter是Python的标准GUI库,用于创建跨平台的桌面应用程序。它是一个轻量级的库,易于学习和使用,适合初学者和开发小型项目。Tkinter的核心优势在于其简洁性,你可以用很少的代码实现功能丰富的窗体应用。

基本元素

1. 根窗口(Root Window)

每个Tkinter应用都开始于创建一个根窗口。这是你的应用的主窗口,其他所有的GUI元素都被放置在这个窗口中。

import tkinter as tk

root = tk.Tk()
root.mainloop()

2. 小部件(Widgets)

Tkinter的小部件是构建应用的基石。常用的小部件包括:

  • 按钮(Button):执行命令的标准按钮。
  • 标签(Label):显示文本或图像。
  • 输入框(Entry):单行文本输入。
  • 文本框(Text):多行文本输入。
  • 框架(Frame):组织其他小部件。

每个小部件都可以自定义其属性,如大小、颜色、字体等。

3. 布局管理

Tkinter提供了几种布局管理器来安排小部件:

  • pack():按顺序放置小部件。
  • grid():在表格中放置小部件。
  • place():精确控制小部件的位置。

使用这些布局管理器,你可以创建整洁和吸引人的界面布局。

4. 事件处理

在GUI程序中,事件处理是核心。Tkinter允许你定义事件处理函数,响应用户的行为,如点击按钮、输入文本等。

def on_click():
    print("Button clicked!")

button = tk.Button(root, text="Click Me", command=on_click)
button.pack()

1.用 tkinter实现一个简单的 GUI程序,单击“click”按钮,在终端打印出“hello world”。

请添加图片描述

import tkinter as tk

def hello_world():
    print("hello world")

app = tk.Tk()
app.title("Hello World App")
button = tk.Button(app, text="Click", command=hello_world)
button.pack()
app.mainloop()

2.设计一个窗体,模拟登录界面,当用户输入正确的用户名和密码时提示“登录成功”,否则提示“用户名或密码错误”。

请添加图片描述

from tkinter import messagebox

def check_login():
    username = entry_username.get()
    password = entry_password.get()
    if username == "your_username" and password == "your_password":  # replace with actual username and password
        messagebox.showinfo("Login Status", "登录成功")
    else:
        messagebox.showinfo("Login Status", "用户名或密码错误")

app = tk.Tk()
app.title("Login")

tk.Label(app, text="Username:").pack()
entry_username = tk.Entry(app)
entry_username.pack()

tk.Label(app, text="Password:").pack()
entry_password = tk.Entry(app, show="*")
entry_password.pack()

button_login = tk.Button(app, text="Login", command=check_login)
button_login.pack()

app.mainloop()

3.创建如图11-35所示的界面,输入作品和作者信息后,单击“读取信息”按钮将输入的信息在下方的输入框中显示,单击“退出”按钮退出程序的执行。

请添加图片描述

import tkinter as tk

def display_info():
    work = entry_work.get()
    author = entry_author.get()
    text_info.delete('1.0', tk.END)
    text_info.insert(tk.END, f"作品: {work}\n作者: {author}")

app = tk.Tk()
app.title("Information Display")

tk.Label(app, text="作品").pack()
entry_work = tk.Entry(app)
entry_work.pack()

tk.Label(app, text="作者").pack()
entry_author = tk.Entry(app)
entry_author.pack()

button_read = tk.Button(app, text="读取信息", command=display_info)
button_read.pack()

text_info = tk.Text(app)
text_info.pack()

button_exit = tk.Button(app, text="退出", command=app.quit)
button_exit.pack()

app.mainloop()

结语

Tkinter是Python中创建GUI的一种简单而强大的方式。无论你是初学者还是有经验的开发者,Tkinter都是入门GUI编程的理想选择。通过学习和使用Tkinter,你可以构建出直观、交互性强的桌面应用程序,增强用户体验。

开始你的Tkinter旅程,创造你的第一个Python GUI应用吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/236722.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode-21-合并两个有序链表(C语言实现)

题目: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 [], l2 [] 输出…

Linux网络——高级IO

目录 一.五种IO模型 1.阻塞式IO 2.非阻塞式IO 3.信号驱动IO 4.多路转接IO: 5.异步IO 二.同步通信 vs 异步通信 三.设置非阻塞IO 1.阻塞 vs 非阻塞 2.非阻塞IO 3.实现函数SetNoBlock 四.I/O多路转接之select 1.初识select 2.select函数原型 3.socket就绪…

Python 学习笔记之 networkx 使用

介绍 networkx networkx 支持创建简单无向图、有向图和多重图;内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用 networkx 中的 Graph Graph 的定义 Graph 是用点和线来刻画离散事物…

【JAVA基础】----第一天

【JAVA基础】----第一天 命名规则注释方式对HelloWorld代码进行解释常量,进制转换和机器码展现计算过程常量类型1.字符串常量2.整数常量 提供了四种表现形式2.1 二进制2.2 八进制2.3 十进制2.4 十六进制2.5 进制之间的转化2.5.1 其他进制转化为十进制2.5.2 十进制转…

【算法优选】 动态规划之路径问题——贰

文章目录 🎋前言🌲[下降最小路径和](https://leetcode.cn/problems/minimum-path-sum/)🚩题目描述🚩算法思路:🚩代码实现 🎍[最小路径和](https://leetcode.cn/problems/minimum-path-sum/)&…

初识RabbitMQ

一、消息队列 1、消息队列的介绍 在介绍RabbitMQ之前,首先来介绍下消息队列。消息队列是生产者-消费者模型的一个典型的代表,由一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的消息。当新的消息入队时,就会通…

12.11

1.q&#xff0c;w&#xff0c;e亮led1&#xff0c;2&#xff0c;3&#xff1b; a&#xff0c;s&#xff0c;d灭led1&#xff0c;2&#xff0c;3&#xff1b; main.c #include "uar1.h"#include "led.h"void delay(int ms){int i,j;for(i0;i<ms;i){for…

红队攻防实战之Redis-RCE集锦

心若有所向往&#xff0c;何惧道阻且长 Redis写入SSH公钥实现RCE 之前进行端口扫描时发现该机器开着6379&#xff0c;尝试Redis弱口令或未授权访问 尝试进行连接Redis&#xff0c;连接成功&#xff0c;存在未授权访问 尝试写入SSH公钥 设置redis的备份路径 设置保存文件名 …

透析跳跃游戏

关卡名 理解与贪心有关的高频问题 我会了✔️ 内容 1.理解跳跃游戏问题如何判断是否能到达终点 ✔️ 2.如果能到终点&#xff0c;如何确定最少跳跃次数 ✔️ 1. 跳跃游戏 leetCode 55 给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。数组中的每个元素代表…

[MySQL]SQL优化之索引的使用规则

&#x1f308;键盘敲烂&#xff0c;年薪30万&#x1f308; 目录 一、索引失效 &#x1f4d5;最左前缀法则 &#x1f4d5;范围查询> &#x1f4d5;索引列运算&#xff0c;索引失效 &#x1f4d5;前模糊匹配 &#x1f4d5;or连接的条件 &#x1f4d5;字符串类型不加 …

C语言中的一维数组与二维数组

目录 一维数组数组的创建初始化使用在内存中的存储 二维数组创建初始化使用在内存中的存储 数组越界 一维数组 数组的创建 数组是一组相同类型元素的集合。 int arr1[10]; char arr3[10]; float arr4[10]; double arr5[10];下面这个数组能否成功创建&#xff1f; int count…

计算机丢失msvcp140dll怎么恢复?快速解决dll缺失问题

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcp140dll丢失”。msvcp140.dll是一个动态链接库文件&#xff0c;它包含了许多C标准库函数的实现。这些动态链接库文件是程序运行所必需的&#xff0c;它们包含了许多函数和资源&#xf…

spring结合设计模式之策略模式

策略模式基本概念&#xff1a; 一个接口或者抽象类&#xff0c;里面两个方法&#xff08;一个方法匹配类型&#xff0c;一个可替换的逻辑实现方法&#xff09;不同策略的差异化实现(就是说&#xff0c;不同策略的实现类) 使用策略模式替换判断&#xff0c;使代码更加优雅。 …

Guava反射工具详解

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;今天咱们聊聊Java反射&#xff0c;特别是在Guava这个强大的库中&#xff0c;它是怎么让反射变得更简单&#xff0c;更有趣的。咱们都知道&#xff0c;反射在Java中是个相当强大的特性&#xff0c;它允许程序在运…

AcWing 95. 费解的开关(递推)

题目链接 活动 - AcWing 本活动组织刷《算法竞赛进阶指南》&#xff0c;系统学习各种编程算法。主要面向有一定编程基础的同学。https://www.acwing.com/problem/content/97/ 题解 只要第一行开关的状态确定&#xff0c;则所有开关的状态都可以被推出来。第一行开关总共有种操…

从零开始学R语言?这个网站帮你快速入门,成为数据分析高手!

介绍&#xff1a;R语言&#xff0c;全称The R Programming Language&#xff0c;是一种属于GNU系统的自由、免费、源代码开放的软件。它主要被用于统计计算和统计制图&#xff0c;因此&#xff0c;它是统计分析和数据可视化的优秀工具。 R语言的特点丰富多样。首先&#xff0c;…

入职字节外包一个月,我离职了。。。

有一种打工人的羡慕&#xff0c;叫做“大厂”。 真是年少不知大厂香&#xff0c;错把青春插稻秧。 但是&#xff0c;在深圳有一群比大厂员工更庞大的群体&#xff0c;他们顶着大厂的“名”&#xff0c;做着大厂的工作&#xff0c;还可以享受大厂的伙食&#xff0c;却没有大厂…

AWS攻略——使用Public NAT解决私有子网实例访问互联网

文章目录 创建NAT网关编辑Private子网路由测试知识点参考资料 在《AWS攻略——子网》一文中&#xff0c;我们分别创建了一个Public子网和一个Private子网&#xff0c;并让Public子网中的实例可以SSH登录到Private子网的实例中。 现实场景中&#xff0c;我们可能存在如下需求&a…

用微元思想求解三重积分——基于Matlab

仅作自己学习使用 1. 题目 求解下列三重积分&#xff0c;其中A&#xff0c;μ&#xff0c;r都是常数。 求解的准确性可以用下式进行评估&#xff1a; 听过考研数一张宇课程的朋友应该指导&#xff0c;求解三重积分就是就一个面包&#xff0c;我们将面包无限细分为一个小块&a…