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 tkwin = 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 tkdef 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()

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【高中数学/幂函数】比较a=2^0.3,b=3^0.2,c=7^0.1的大小

【问题】 比较a2^0.3,b3^0.2,c7^0.1的大小 【解答】 a2^0.32^3/10(2^3)^1/108^1/10 b3^0.23^2/10(3^2)^1/109^1/10 c7^0.17^1/10 由于yx^1/10在x正半轴是增函数,底数大的得数就大。 因为9>8>7,所以b>a>c 【图像】 在图像上绘出曲线yx^1/10&…

springcolud学习01

创建项目 修改pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.o…

【游戏引擎之路】登神长阶(七)——x86汇编学习:凡做难事,必有所得

5月20日-6月4日&#xff1a;攻克2D物理引擎。 6月4日-6月13日&#xff1a;攻克《3D数学基础》。 6月13日-6月20日&#xff1a;攻克《3D图形教程》。 6月21日-6月22日&#xff1a;攻克《Raycasting游戏教程》。 6月23日-7月1日&#xff1a;攻克《Windows游戏编程大师技巧》。 7月…

如何指定多块GPU卡进行训练-数据并行

训练代码&#xff1a; train.py import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader, Dataset import torch.nn.functional as F# 假设我们有一个简单的文本数据集 class TextDataset(Dataset):def __init__(self, te…

jmeter分布式(四)

一、gui jmeter的gui主要用来调试脚本 1、先gui创建脚本 先做一个脚本 演示&#xff1a;如何做混合场景的脚本&#xff1f; 用211的业务比例 ①启动数据库服务 数据库服务&#xff1a;包括mysql、redis mysql端口默认3306 netstat -lntp | grep 3306处于监听状态&#xf…

【C++】—— 初识C++

【C】—— 初识C 一、什么是 C二、C 的发展历史三、C 版本更新四、C 的重要性五、C 在工作领域中的运用六、C 书籍推荐&#xff1a; 一、什么是 C C语言 是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要…

使用嵌入式知识打造智能手环:nRF52蓝牙开发实战(C++/BLE/传感器)

项目概述 现代人越来越注重健康管理&#xff0c;智能穿戴设备应运而生。本项目旨在利用低功耗蓝牙芯片nRF52832&#xff0c;结合加速度计、心率传感器、陀螺仪等传感器&#xff0c;开发一款功能完善、性能稳定的智能运动手环。该手环能够实时采集用户的运动数据和生理指标&…

vue3 - vue项目自动检测更新

vue3 GitHub Demo 地址 vue3在线预览 vue2 GitHub Demo 地址 vue2 在线预览 web项目当页面检测到需要更新&#xff0c;然后弹框提示是否更新&#xff08;刷新页面&#xff09;这种可以通过纯前端实现也可以通过接口实现 接口实现&#xff1a;通过调用接口轮询和本地的版本号比…

护网HW面试——redis利用方式即复现

参考&#xff1a;https://xz.aliyun.com/t/13071 面试中经常会问到ssrf的打法&#xff0c;讲到ssrf那么就会讲到配合打内网的redis&#xff0c;本篇就介绍redis的打法。 未授权 原理&#xff1a; Redis默认情况下&#xff0c;会绑定在0.0.0.0:6379&#xff0c;如果没有采用相关…

FPGA设计之跨时钟域(CDC)设计篇(1)----亚稳态到底是什么?

1、什么是亚稳态? 在数字电路中,如果数据传输时不满足触发器FF的建立时间要求Tsu和保持时间要求Th,就可能产生亚稳态(Metastability),此时触发器的输出端(Q端)在有效时钟沿之后比较长的一段时间都会处于不确定的状态(在0和1之间振荡),而不是等于数据输入端(D端)的…

强制升级最新系统,微软全面淘汰Win10和部分11用户

说出来可能不信&#xff0c;距离 Windows 11 正式发布已过去整整三年时间&#xff0c;按理说现在怎么也得人均 Win 11 水平了吧&#xff1f; 然而事实却是&#xff0c;三年时间过去 Win 11 占有率仅仅突破到 29%&#xff0c;也就跳起来摸 Win 10 屁股的程度。 2024 年 6 月 Wi…

功率继电器【HF46F】

目的&#xff1a;通过单片机控制继电器动作。 原理图如下&#xff0c;原理图中使用的继电器为HF46F5H&#xff0c; 上述原理图的电路原理&#xff1a; 在这个电路图中&#xff0c;电源开关相关的部分包括一个电源开关、一个三极管Q1、一个二极管D2和一个继电器K1。当电源开关…

阿里云ECS服务器安装jdk并运行jar包,访问成功详解

安装 OpenJDK 8 使用 yum 包管理器安装 OpenJDK 8 sudo yum install -y java-1.8.0-openjdk-devel 验证安装 安装完成后&#xff0c;验证 JDK 是否安装成功&#xff1a; java -version设置 JAVA_HOME 环境变量&#xff1a; 为了确保系统中的其他应用程序可以找到 JDK&…

开源必看!50 多个本地运行 LLM 的开源选项

在我之前的文章中&#xff0c;我讨论了使用本地托管的开源权重 LLM 的好处&#xff0c;例如数据隐私和成本节约。通过主要使用免费模型并偶尔切换到 GPT-4&#xff0c;我的月度开支从 20 美元降至 0.50 美元。设置端口转发到本地 LLM 服务器是移动访问的免费解决方案。 有许多…

WSL2 的安装与运行 Linux 系统

前言 适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能&#xff0c;允许开发人员在 Windows 系统上直接安装并使用 Linux 发行版。不用进行任何修改&#xff0c;也无需承担传统虚拟机或双启动设置的开销。 可以将 WSL 看作也是一个虚拟机&#xff0c;但是它更为便…

let/const/var的区别及理解

在JavaScript中&#xff0c;let、const 和 var 是用来声明变量的关键字&#xff0c;但它们之间在作用域、变量提升、重复声明等方面存在区别&#xff0c;详细情况如下: 1. let、const、var 的区别 (1) 块级作用域 let 和 const&#xff1a;具有块级作用域&#xff0c;由 {} 包…

记录些Redis题集(2)

Redis 的多路IO复用 多路I/O复用是一种同时监听多个文件描述符&#xff08;如Socket&#xff09;的状态变化&#xff0c;并能在某个文件描述符就绪时执行相应操作的技术。在Redis中&#xff0c;多路I/O复用技术主要用于处理客户端的连接请求和读写操作&#xff0c;以实现高并发…

Redis 中String类型操作命令(命令演示,时间复杂度,返回值,注意事项)

String 类型 文章目录 String 类型set 命令get 命令mset 命令mget 命令get 和 mget 的区别incr 命令incrby 命令decr 命令decrby 命令incrbyfloat 命令append 命令getrange 命令setrange 命令 字符串类型是 Redis 中最基础的数据类型&#xff0c;在讲解命令之前&#xff0c;我们…

STM32基础篇:EXTI × 事件 × EXTI标准库

EXTI EXTI简介 EXTI&#xff1a;译作外部中断/事件控制器&#xff0c;STM32的众多片上外设之一&#xff0c;能够检测外部输入信号的边沿变化并由此产生中断。 例如&#xff0c;在检测按键时&#xff0c;按键按下时会使电平产生翻转&#xff0c;因此可以使用EXTI来读取按下时…

用AirScript脚本给女/男朋友发送每日早安邮件(极简版本)

先看效果 工具 金山文档/WPS提供了每日定时的AirScript脚本服务&#xff0c;非常方便&#xff5e; 话不多说&#xff0c;我们以金山文档为例&#xff0c;只有简单的五个步骤&#xff0c;非常容易&#xff5e; 教程开始 步骤1 我们打开金山文档新建一个智能表格 步骤2 按下图…