GUI界面开发之tkinter(一)

Tkinter是一个内置的Python库,用于创建图形用户界面(GUI)。它提供了一组工具和小部件,用于创建窗口、对话框、按钮、菜单和其他GUI元素。

在本篇文章中,主要介绍了窗口等知识点。

大家好!我是码银🥰

欢迎关注🥰:

CSDN:码银

公众号:码银学编程

一、创建窗口

from tkinter import*

win = Tk()
win.mainloop()

tkinter创建的基础窗口样式如下: 

二、设置窗口属性

在Python中,特别是使用Tkinter库创建图形用户界面(GUI)时,会遇到一些用于控制窗口属性的方法。下面我将基于Tkinter库给出一些简单的示例。

1. title()

title() 方法用于设置窗口的标题。在Tkinter中,你可以直接对窗口对象调用这个方法。

from tkinter import*

win = Tk()
win.title("窗口属性")

win.mainloop()

2. 几何尺寸设置

在Tkinter中,可以使用 geometry("widthxheight") 方法来设置窗口的初始大小和位置。geometry() 方法接受一个字符串参数。

win.geometry("400x300")  # 设置窗口初始大小为400x300

3. maxsize(width,height) 和 minsize(width,height)

在Tkinter中,可以使用 maxsize() 和 minsize() 方法来限制窗口的最大和最小尺寸。

win.minsize(200, 100)  # 设置窗口最小尺寸为200x100  
win.maxsize(800, 600)  # 设置窗口最大尺寸为800x600

4. configure(bg=color)

configure() 方法用于配置窗口或窗口部件的多个选项。在Tkinter中,你可以使用它来改变背景颜色、字体等。对于背景颜色,bg 是常用的选项名。

win.configure(bg="lightblue")  # 或者使用 win.config(bg="lightblue")


5. resizable(True,True)

resizable() 方法用于控制窗口的哪些边可以调整大小。在Tkinter中,你可以通过传递两个布尔值来分别控制水平和垂直方向的调整大小能力。

win.resizable(True, True)  # 允许窗口在水平和垂直方向上调整大小

6. iconify() 和 iconbitmap()

  • iconify() 方法用于将窗口最小化到任务栏(或等效的窗口管理器位置)。
  • iconbitmap() 方法用于设置窗口的图标。
import tkinter as tk

win = tk.Tk()
win.iconify()  # 最小化窗口
win.iconbitmap('path_to_icon.ico')  # 设置窗口图标

三、设置窗口位置

win.geometry(widthxheight+x+y)

(widthxheight+x+y)的格式为 ("宽度x高度+x偏移+y偏移")。

假如说,下面的整个图片是一个窗口,那么X,Y值就是下图中所示窗口左上角顶点位置。

import tkinter as tk

# 创建主窗口
win = tk.Tk()
win.geometry("200x300+100+100")
win.mainloop()


win.geometry(widthxheight-x-y)

同理,使用上面这个函数,它的X,Y值就代表了窗口右下角位置的坐标。

import tkinter as tk

# 创建主窗口
win = tk.Tk()
win.geometry("200x300-100-100")
win.mainloop()

示例(将窗口固定在屏幕中间位置):

import tkinter as tk

def center_window(root, width=300, height=200):
    # 获取屏幕宽度和高度  
    screen_width = root.winfo_screenwidth()
    screen_height = root.winfo_screenheight()

    # 计算窗口的x和y坐标,使得窗口居中  
    x = (screen_width // 2) - (width // 2)
    y = (screen_height // 2) - (height // 2)

    # 设置窗口的几何形状(大小+位置)  
    root.geometry(f"{width}x{height}+{int(x)}+{int(y)}")


# 创建Tkinter窗口
win = tk.Tk()
win.configure(bg="lightblue")  
win.title("屏幕中央的窗口")

# 调用函数来设置窗口大小和在屏幕上的位置  
center_window(win)

# 进入Tkinter的主事件循环  
win.mainloop()

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

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

相关文章

Nginx实现服务器端集群搭建/Nginx实现动静分离/Nginx高可用解决方案/Nginx与Tomcat部署

Nginx实现服务器端集群搭建 Nginx与Tomcat部署 前面课程已经将Nginx的大部分内容进行了讲解,我们都知道了Nginx在高并发场景和处理静态资源是非常高性能的,但是在实际项目中除了静态资源还有就是后台业务代码模块,一般后台业务都会被部署在Tomcat,weblogic或者是webspher…

把当前img作为到爷爷的背景图

(忽略图大小不一致,一般UI给的图会刚好适合页面大小,我这网上找的图,难调大小,我行内的就自己随便写的宽高),另外悄悄告诉你最后有简单方法~~ 先来看看初始DOM结构代码 …

解锁 EasyV「万能子组件」,你的业务展示形式由你定义!

随着可视化业务表达方式的不断拓深,展示形式也越来越丰富多样,充满更多的“个性化”以及“专属定制”的诉求场景。而现在的子组件样式,仅支持固定格式的内容表达,难以满足易知微用户的定制化需求。 比如以下场景 想在地图上展示图…

破解快消行业营销费用管理难题,引领财务费控数字化转型

众所周知,快消品行业消费群体较为广泛,涉及渠道复杂,产品周转期短、可替代性强,特别是面对竞争激烈的市场环境,大力投入营销、渠道费用对快消行业的企业来说十分普遍,而这其中,由于渠道多、业态…

13.FreeRTOS_定时器

定时器概述 定时器运行过程 定时器就像一个闹钟,它有超时时间、函数、是否为周期性这三个部分。 超时时间:什么时候到时间,就像闹钟响起函数:闹钟响起,要干什么是否为周期性:这个闹钟只响一次&#xff0…

MySQL下载安装使用教程图文教程(超详细)

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们使…

指针!!C语言(第一篇)

指针1 指针变量和地址1.取地址操作符(&)2.指针变量和解引用操作符(*) 指针变量的大小和类型指针的运算特殊指针1.viod*指针2.const修饰指针3.野指针 assert断言指针的使用和传址调用1.strlen的模拟实现2.传值调用和传址调用 指针变量和地址 在认识指针之前,我们…

算法力扣刷题记录 四十二【101. 对称二叉树、100.相同的树、572.另一个树的子树】

前言 二叉树篇,开始对二叉树操作练习。 记录 四十二【101. 对称二叉树】。 继续。 一、题目阅读 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2&#x…

香橙派AIpro部署YOLOv5:探索强悍开发板的高效目标检测能力

香橙派AIpro部署YOLOv5:探索强悍开发板的高效目标检测能力 一、香橙派AIpro开箱使用体验 1.1香橙派AIpro开箱 拿到板子后第一件事情就是开箱: 开箱后可以看见一个橘子的标识,也就是香橙派了,并且还有四个大字:为AI…

微信小游戏 彩色试管 倒水游戏 逻辑 (二)

最近开始研究微信小游戏,有兴趣的 可以关注一下 公众号, 记录一些心路历程和源代码。 定义一个 Water class 1. **定义接口和枚举**: - WaterInfo 接口定义了水的颜色、高度等信息。 - PourAction 枚举定义了水的倒动状态,…

基于5个K7的多FPGA PCIE总线架构的高性能数据预处理平台

板载FPGA实时处理器:XCKU060-2FFVA15172个QSFP光纤接口,最大支持10Gbps/lane板载DMA控制器,能实现双向DMA高速传输支持x8 PCIE主机接口,系统带宽5GByte/s1个R45自适应千兆以太网口1个FMC子卡扩展接口 基于PCIE总线架构的高性能数据…

【JavaEE】网络编程——TCP

🤡🤡🤡个人主页🤡🤡🤡 🤡🤡🤡JavaEE专栏🤡🤡🤡 文章目录 前言1.网络编程套接字1.1流式套接字(TCP)1.1.1特点1.1.2编码1.1.2.1ServerSo…

同四千价位闺蜜机,当贝PadGO Air和KTCPro谁更好?

市面上闺蜜机品牌那么多,那么在4K这个价位,如果想购买一台高性价比的闺蜜机应该选择当贝PadGO Air还是KTCPro呢?我们一起来看一下对比 一、外观对比 当贝PadGO Air机身底部为CD型底盘设计,非常有设计感及美感。并且创新性地融入了磁吸快拆布面设计,极大提升了用户体验的便捷…

编程入门(九)【linux系统下docker的部署与发布网站】

读者大大们好呀!!!☀️☀️☀️ 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️木道寻的主页 文章目录 🔥前言🚀什么是docker?🚀docker三要素🚀linux系统下docker的基…

算法题-字符串

1.C字符串 c提供了一下两种类型的字符串表示形式: c风格字符串c引入的string类类型 1.1C风格字符串 C 风格的字符串起源于 C 语言,并在 C 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾的…

KnoBo:医书学习知识,辅助图像分析,解决分布外性能下降和可解释性问题

KnoBo:从医书中学习知识,辅助图像分析,解决分布外性能下降问题 提出背景KnoBo 流程图KnoBo 详解问题构成结构先验瓶颈预测器参数先验 解法拆解逻辑链对比 CLIP、Med-CLIPCLIPMed-CLIPKnoBo 训练细节预训练过程OpenCLIP的微调 构建医学语料库文…

【Nuxt3】vue3+tailwindcss+vuetify引入自定义字体样式

一、目的 在项目中引入自定义的字体样式(全局页面都可使用) 二、步骤 1、下载好字体 字体的后缀可以是ttf、otf、woff、eot或者svg(推荐前三种) 以抖音字体为例下载好放在静态文件夹(font)下 案例字…

notepad++中文出现异体汉字,怎么改正

notepad显示异体字,如何恢复? 比如 “门” 和 “直接” 的"直"字,显示成了 方法 修改字体, 菜单栏选择 Settings(设置),Style Configurator…(语言格式设置…)&#xf…

《昇思25天学习打卡营第22天|onereal》

文本解码原理--以MindNLP为例 回顾:自回归语言模型 根据前文预测下一个单词 一个文本序列的概率分布可以分解为每个词基于其上文的条件概率的乘积 𝑊_0:初始上下文单词序列𝑇: 时间步当生成EOS标签时,停止生成。 MindNLP/huggi…

C++基础(三)

1.再探构造函数 之前的构造函数,初始化成员变量主要使用函数体内赋值,构造函数初始化还有一种方式,就是初始化列表,初始化列表的使用方式是以一个冒号开始,接着是一个以逗号分隔开的数据成员列表,每个“成…