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…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

雷赛运动控制卡编程(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中文范例的自然语言处理入门书》编辑推荐内容简介作者简介精彩书评目录前言/序言获取方式 在数字化时代,自然语言处理(NLP&#xff0…

手机数据恢复:适用于 Android 的 4 大数据恢复应用程序

没有人希望丢失设备上的重要数据。如果发生这种情况,请不要惊慌。以下是可帮助您恢复丢失或删除的数据的 Android 数据恢复应用程序列表。 有多种方法可以恢复已删除或丢失的 Android 数据,最简单、最快捷的方法是使用第三方恢复应用程序。这些应用程序会…

Transformer模型:Postion Embedding实现

前言 这是对上一篇WordEmbedding的续篇PositionEmbedding。 视频链接:19、Transformer模型Encoder原理精讲及其PyTorch逐行实现_哔哩哔哩_bilibili 上一篇链接:Transformer模型:WordEmbedding实现-CSDN博客 正文 先回顾一下原论文中对Posit…

[Windows] 号称最快免费小巧的远程桌面 AnyDesk v8.0.11单文件版

描述 对于经常在互联网上进行操作的学生,白领等! 一款好用的软件总是能得心应手,事半功倍。 今天给大家带了一款高科技软件 虽然 QQ 拥有远程协助功能,但很多时候连接并不够流畅,而且被控电脑那方也必须要有人操作才行…

电脑关机被阻止

1. winR输入regedit进入注册表 2. 选择HKEY_USERS-》.DEFAULT-》Control Panel-》Desktop 3. 右键DeskTop新建字符串值,命名为AutoEndTasks,数值设置为1

C++中链表的底层迭代器实现

大家都知道在C的学习中迭代器是必不可少的,今天我们学习的是C中的链表的底层迭代器的实现,首先我们应该先知道链表的底层迭代器和顺序表的底层迭代器在实现上有什么区别,为什么顺序表的底层迭代器更加容易实现,而链表的底层迭代器…

不会编程怎么办?量化交易不会编程可以使用吗?

量化交易使用计算机模型程序代替人工进行交易,一般需要投资者自己编写程序建模,然后回测无误之后再进行实盘交易,那么不会编程的投资者能使用量化软件进行量化交易吗? 不会编程使用量化软件有两种方法 一种是请人代写代码&#x…

Java软件设计模式-单例设计模式

目录 1.软件设计模式的概念 2.设计模式分类 2.1 创建型模式 2.2 结构型模式 2.3 行为型模式 3.单例设计模式 3.1 单例模式的结构 3.2 单例模式的实现 3.2.1 饿汉式-方式1(静态变量方式) 3.2.2 懒汉式-方式1(线程不安全) 3.…