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.mzph.cn/news/871950.shtml

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

相关文章

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

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

人工智能时代的伦理挑战与隐私保护

随着人工智能技术的迅猛发展,我们不得不正视其带来的伦理挑战和隐私保护问题。人工智能的应用已经深入到社会的方方面面,从医疗健康到金融服务,从教育到娱乐,无所不在。然而,与其广泛应用相伴随的是数据隐私泄露、算法…

MySQL 时区问题:设置了 my.ini 并重启了服务,依旧是 0 时区

1、问题再现 在撰写 飞书 API 2-5 时,需要新建一些数据表,以便实施从数据库到多维表的数据同步。我建了2个测试数据表,连表查询之后,将时间戳转为时间格式返回,结果发现少了 8 小时。 具体逻辑抽象为以下&#xff0c…

【Vue3组件】封装全局路由切换loading效果

把大象装进冰箱需要几步 1.写一个全局loading的样式组件&#xff0c;我这里使用了LottieAnimation 实现更优雅的切换动画&#xff0c;详情可以参考主页上一篇文章 <template><div v-if"isLoading" class"loading-overlay"><LottieAnimatio…

S7-1200PLC 2轴直线插补(详细方案对比)

1、V90速度轴应用 速度轴V90PN总线伺服梯形加减速速度控制(标准报文1应用)_v90伺服加减速时间怎么调整-CSDN博客文章浏览阅读288次。SMART PLC斜坡函数SMART PLC斜坡函数功能块(梯形图代码)_RXXW_Dor的博客-CSDN博客斜坡函数Ramp的具体应用可以参看下面的文章链接:PID优化系…

【Linux/Vim】Vim使用教程及速查手册

目录 一.Vim介绍 1.Vim是什么 2.Vim的安装 (1)Vim默认安装的系统 (2)Vim的安装方法 (3)检查Vim是否安装成功 3.Vim,Vi,gvim的区别 4./.vimrc配置文件介绍及使用方法 (1).vimrc 的介绍 (2).vimrc 的使用方法 二.Vim使用方法 1.Vim的模式 (1)Vim一般命令模式常用操作…

【技术】JS的ES6有哪些知识点

1.let-const块级作用域的补充 const names["abc","cba","nba"];for(let i0;i<names.length;i){ //* 这个数组的元素有三个&#xff0c;所以会形成3个块级作用域console.log(names[i]); }以上for遍历内部的实现是以下这样的&#xff1a; 因…

数据库-MySQL 实战项目——书店图书进销存管理系统数据库设计与实现(附源码)

一、前言 该项目非常适合MySQL入门学习的小伙伴&#xff0c;博主提供了源码、数据和一些查询语句&#xff0c;供大家学习和参考&#xff0c;代码和表设计有什么不恰当还请各位大佬多多指点。 所需环境 MySQL可视化工具&#xff1a;navicat&#xff1b; 数据库&#xff1a;MySq…

数据结构之线性表的实现

顺序存储实现&#xff08;数组&#xff09; 顺序存储的线性表通常使用数组来实现。在数组中&#xff0c;元素在内存中是连续存放的&#xff0c;通过数组下标可以访问任意位置的元素。 链式存储实现&#xff08;链表&#xff09; 链式存储的线性表使用链表来实现。链表中的元…

C++ --> 类和对象(三)

欢迎来到我的Blog&#xff0c;点击关注哦&#x1f495; 前言 前面已经对类和对象有一定的了解&#xff0c;接下来再次深入的了解一下。 一、深入理解构造函数 构造函数体赋值&#xff1a; 虽然上述构造函数调用之后&#xff0c;对象中已经有了一个初始值&#xff0c;但是不能…

[笔记] SEW的振动分析工具DUV40A

1.便携式振动分析仪 DUV40A 文档编号&#xff1a;26871998/EN SEW是一家国际化的大型的机械设备供应商。产品线涵盖电机&#xff0c;减速机&#xff0c;变频器等全系列动力设备。DUV40A是他自己设计的一款振动分析工具。 我们先看一下它的软硬件参数&#xff1a; 内置两路传…

防火墙综合实验之NAT和智能选路

目录 前言&#xff1a; 一、实验题目 二、实验操作 需求一 需求二 需求三 需求四、需求五 需求六 需求七 ​编辑 需求八 需求九 需求十 需求十一 三、需求测试 前言&#xff1a; 本篇文章是延续上一篇文章&#xff0c;简单来说就是防火墙实验的完善和延续&#…

CV07_深度学习模块之间的缝合教学(2)--维度转换

教学&#xff08;1&#xff09;&#xff1a;链接 1.1 预备知识 问题&#xff1a;假如说我们使用的模型张量是三维的&#xff0c;但是我们要缝合的模块是四维的&#xff0c;应该怎么办&#xff1f; 方法&#xff1a;pytorch中常用的函数&#xff1a;(1)view函数&#xff08;2…

新华三H3CNE网络工程师认证—DHCP使用场景

网络服务与应用当中的技术有DHCP、Telnet和FTP。DHCP是计算机当中常用来获取地址的。比如日常使用中&#xff0c;计算机并没有接入IP&#xff0c;IP通过DHCP技术从上端服务去获取的。手动配置网络参数会出现多种问题。 文章目录 一、手动配置网络参数的问题1、参数多、理解难2、…

【零基础】学JS之APIS第四天

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

喰星云·数字化餐饮服务系统 多处 SQL注入漏洞复现

0x01 产品简介 喰星云数字化餐饮服务系统是一款专为餐饮企业设计的综合性管理软件,旨在通过信息化手段提升餐饮企业的运营效率、降低运营成本,并实现数据驱动的决策管理。该系统包括供应链管理、财务管理、巡店管理、人力资源管理等多个模块,可全面覆盖餐饮企业的日常运营需…

Zynq7000系列FPGA中的DDR内存控制器

DDR内存控制器是一个高度集成的组件&#xff0c;支持多种DDR内存类型&#xff08;DDR2、DDR3、DDR3L、LPDDR2&#xff09;&#xff0c;并通过精心设计的架构来优化内存访问效率。 DDR内存控制器架构 AXI内存端口接口&#xff08;DDRI&#xff09;&#xff1a;该部分负责处理与…

C/C++指针智能指针二

C/C指针&智能指针二 文章目录 C/C指针&智能指针二1.智能指针简介2.独占智能指针unique_ptr1.基本概念2.使用方法1.初始化 3.使用技巧 3.共享智能指针1.基本概念2.使用方法3.注意事项 4.智能指针删除器1.如何使用删除器2.应用场景 5.弱智能指针weak_ptr1.基本概念2.使用…

雷赛运动控制卡编程(2)限位设定与回原方式、脉冲模式设置

一、限位开关及急停开关的设置 限位开关的设置 //设置限位开关// dmc_set_el_modeushort _cardNo0;ushort _axisNo 0;ushort _enable 1; // 正负限位使能 ushort _elLogic 0; // 正负限位 低电平 有效ushort _model 0;// 正负限位停止方式为立即停止LTDMC.dmc_set_el_m…

构建实用的NLP应用程序:重塑人类与计算机的协同工作方式

文章目录 一、NLP技术的核心价值二、构建实用NLP应用程序的关键步骤三、NLP应用程序在协同工作中的创新应用《赠ChatGPT中文范例的自然语言处理入门书》编辑推荐内容简介作者简介精彩书评目录前言/序言获取方式 在数字化时代&#xff0c;自然语言处理&#xff08;NLP&#xff0…