Python Tkinter快速入门

news2024/11/25 14:52:57

一、背景

接了一个小活,需要做一个比特币走势分析小工具,客户希望能安装在Mac上,考虑后决定采用Python的Tkinter+matplotlib来做,今天我们就来了快速了解一下Tkinter。

二、Tkinter介绍

Tkinter是Tk的Python版本,而Tk原本是Tcl的GUI库。Tkinter内置在Python中,无需额外安装,但它的组件较少,功能较弱。Tkinter和其它桌面版开发语言差不多,也是添加控件(Python是编译型的语言,不支持拖拽方式开发界面,需要手写代码),然后触发事件。

三、布局

1、pack布局

依次从上到下排,默认会自动寻找合适的位置和大小。在使用的时候在组件后面加上pack函数即可,pack函数主要参数如下:

  • side指定控件停靠方向,可以为LEFT、TOP、RIGHT、BUTTON.

  • fill  设置是否填充和填充方向,可以为 X、Y、BOTH、NONE.

注:比较简单布局用pack即可。

2、grid布局

网格布局,在使用时在组件后加上grid函数即可,grid函数主要参数如下:

  • row/column:放在第几行/第几列。

  • sticky:决定组件是从哪个方向开始, N(上),S(下),W(左),E(右)。

  • rowspan/columnspan:单元格合并,跨越的行数/跨越的列数。

注:复杂的布局用grid。

四、组件

所有开发语言GUI或者Web支持的组件都差不多,可能命名和语法上有所差异。

  • Tkinter 有21个核心组件,常见的比如Label(标签)、Button(按纽)、Entry(输入框)、Frame(框架)、Menu(菜单)、RadioButton(单选)、CheckButton(复选)、Canvas(画布)、Bitmap(图像)等。

    注:顶部栏Menu在Mac下测试不成功,但右键弹出的Menu是可以的。

  • ttk(Tk tookit)新引入了6个组件,比如progressbar(进度条)等,ttk可以在不同系统上有不同的风格。

五、事件

有两种绑定事件方法

1、command属性声明

def eventProcess():

    事件处理代码

 Button(root,text="Python",command=eventProcess)   

2、bind方法

    组件.bind(事件类型,回调函数)

    常见的事件类型

  • <Button-1>:鼠标左键

  • <Button-3>:  鼠标右键

  • <KeyPress-B>: B键被按下

  • <Control-V>:按下Ctrl v

六、pyinstaller 打包

  • 安装pyinstaller:pip install pyinstaller

  • 打包 pyinstaller -F -w canvas2.py 

注:打包后dist目录下生成canvas2.app,就可以把该文件分发到其它Mac电脑上安装了,如果要打包成exe,用pyinstaller应该是需要在window下打包的(未实验)

七、例子

1、一个登录功能,涉及到界面布局、组件、事件。

2、一个像棋棋盘,涉及到Canvas的使用

注:据说钉钉或微信桌面版本用的是Electron,有时间再去了解一下。

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

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

相关文章

Spring boot集成sentinel限流服务

Sentinel集成文档 Sentinel控制台 Sentinel本身不支持持久化&#xff0c;项目通过下载源码改造后&#xff0c;将规则配置持久化进nacos中&#xff0c;sentinel重启后&#xff0c;配置不会丢失。 架构图&#xff1a; 改造步骤&#xff1a; 接着我们就要改造Sentinel的源码。…

灵活多样的流水号生成方式:JVS低代码表单满足你的各种需求

在数字化时代&#xff0c;表单成为了我们日常生活和工作中不可或缺的一部分。无论是在线申请、数据录入还是业务流程管理&#xff0c;表单都发挥着重要的作用。为了确保数据的准确性和可追溯性&#xff0c;流水号的概念应运而生。流水号作为表单数据记录的唯一标识&#xff0c;…

2022ICPC,济南站(M,E,D

初见安~好久好久没写博客了……感觉还是有必要写的。 拿去年济南的题目训练了一下&#xff0c;状态还不错&#xff0c;写一下自己写过了的题目的题解。 M Best Carry Player 题意&#xff1a;给你n个数&#xff0c;交换他们的顺序使依次相加后总的进位次数最少&#xff08;十…

代码随想录打卡第62天|● 503.下一个更大元素II ● 42. 接雨水

● 503.下一个更大元素II 题目&#xff1a;给定一个循环数组 nums &#xff08; nums[nums.length - 1] 的下一个元素是 nums[0] &#xff09;&#xff0c;返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序&#xff0c;这个数字之后的第…

蓝桥杯每日一题2023.11.6

取位数 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 由题意我们知道len中为现阶段长度&#xff0c;如果其与k相等也就是找到了正确的位数&#xff0c;否则就调用递归来进行搜索&#xff0c;每次搜索一位数。 #include <stdio.h> // 求x用10进制表示时的数位长度 int …

你的停机真的优雅么?第二弹来袭 | 京东云技术团队

1. 前言 之前总结了一篇基于现有业务线在停机重启时会产生RPC和MQ调用强杀导致业务数据不一致文章&#xff0c;文中通过优雅停机改造对RPC服务进行反注册和MQ进行暂停消费&#xff0c;进而可以解决在停机时强制kill掉RPC线程或者MQ线程导致数据不一致现象&#xff0c;具体的原…

DolphinDB 流计算优化实践:时延统计与性能调优

在实时计算中&#xff0c;端到端的响应延迟是衡量计算性能时最重要的指标。DolphinDB 内置的流数据框架支持流数据的发布与订阅、流式增量计算、实时关联等&#xff0c;用户能够快速实现复杂的实时计算任务&#xff0c;达到毫秒级甚至亚毫秒级的效果&#xff0c;而无需编写大量…

这8个Wireshark使用技巧,网工屡试屡爽!

你们好&#xff0c;我的网工朋友。 都懂哈&#xff0c;wireshark是个啥我就不多赘述了&#xff0c;软件功能十分强大就对了。 想安装的可以戳这里&#xff1a;《wireshark下载&安装 》 wireshark作为网工的得力助手&#xff0c;你知道哪些使用技巧&#xff1f; 今天就给…

2023软考-系统架构师一日游

上周六&#xff08;11月4号&#xff09;参见了软考&#xff0c;报的系统架构师&#xff0c;今年下半年是第一次推行机考&#xff0c;简单来分享下大致流程&#xff0c;至于考试难度、考点什么的&#xff0c;这个网上有很多专门研究这些的机构&#xff0c;本人无权发言。考试的经…

每日一题 318. 最大单词长度乘积(中等)

暴力求解没超时&#xff0c;那就这样吧 class Solution:def maxProduct(self, words: List[str]) -> int:ans 0for i in range(len(words)):for j in range(i 1, len(words)):if len(words[i]) * len(words[j]) < ans:continuet 0for k in range(26):ch chr(k ord(…

XCTF-Crypto1

Caesar 题目描述 oknqdbqmoq{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz} 分析解密 根据题目Caesar推测是凯撒加密 当偏移量为12时&#xff0c;成功得到flag&#xff1a;cyberpeace{you_have_learned_caesar_encryption} Morse 题目描述 11 111 010 000 0 1010 111 100 0 00 000 …

外汇天眼:不要等到被骗才追悔莫及,远离以下被吊销牌照的平台!

监管信息早知道&#xff01;外汇天眼将每周定期公布监管牌照状态发生变化的交易商&#xff0c;以供投资者参考&#xff0c;规避投资风险。如果平台天眼评分过高&#xff0c;建议投资者谨慎选择&#xff0c;因为在外汇天眼评分高不代表平台没问题&#xff01; 以下是监管牌照发生…

FAT32转换成NTFS免费软件Tuxera NTFS2024

很多人在使用电脑时都没有注意过系统中的磁盘是哪种格式。一般目前常用的磁盘格式分为FAT32和NTFS两种。那么它们哪种更适合我们以及如何将磁盘格式转换成该格式呢&#xff1f; Tuxera NTFS2023最新免费版下载如下&#xff1a; https://wm.makeding.com/iclk/?zoneid58824 实…

NTP8918(2x15W双通道立体声内置DSP数字功放)

NTP8918是一款高性能、高保真功率驱动集成全数字音频放大器&#xff1b;内置DSP采用I2S输出&#xff1b;可提供2x15W的输出&#xff08;BTL模式&#xff09;或者30W的单通道输出&#xff08;PBTL模式&#xff09;具备可靠性高、功率足、音色出众、适应能力强等优势。 该芯片工…

【TES745D】青翼自研基于复旦微的FMQL45T900全国产化ARM核心模块(100%国产化)

板卡概述 TES745D是一款基于上海复旦微电子FMQL45T900的全国产化ARM核心板。该核心板将复旦微的FMQL45T900&#xff08;与XILINX的XC7Z045-2FFG900I兼容&#xff09;的最小系统集成在了一个87*117mm的核心板上&#xff0c;可以作为一个核心模块&#xff0c;进行功能性扩展&…

docker安装(超详细)

一.引言 本安装教程参考Docker官方文档&#xff0c;地址如下&#xff1a;https://docs.docker.com/engine/install/centos/ 二.卸载旧版docker(第一次安装可忽略) 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载&#xff1a; yum remove docker \docker-client \docker…

Excel【毫秒】/【秒】转换成【时分秒】/【分秒】

1、毫秒转换秒 2、秒转换时分秒 3、秒转换分秒

导轨式安装压力应变桥信号处理差分信号输入转换变送器0-10mV/0-20mV/0-±10mV/0-±20mV转0-5V/0-10V/4-20mA

主要特性 DIN11 IPO 压力应变桥信号处理系列隔离放大器是一种将差分输入信号隔离放大、转换成按比例输出的直流信号导轨安装变送模块。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等行业。此系列模块内部嵌入了一个高效微功率的电源&#xff0c;向输入端和输…

mac卸载软件工具CleanMyMac X4.15永久版下载

如今电脑成为大多数人工作的工具&#xff0c;使用得越久就越需要清理垃圾软件。系统垃圾、废纸娄垃圾、大型和旧文件这些通常都占用了我们的电脑几G的空间。 想要清除不必要的垃圾文件&#xff0c;可以使用mac卸载软件CleanMyMac X&#xff0c;这款清理垃圾软件可以智能扫描Ma…

基于DevEco Studio的OpenHarmony应用原子化服务(元服务)入门教程

一、创建项目 二、创建卡片 三、应用服务代码 Index.ets Entry Component struct Index {State TITLE: string OpenHarmony;State CONTEXT: string 创新召见未来&#xff01;;build() {Row() {Column() {Text(this.TITLE).fontSize(30).fontColor(0xFEFEFE).fontWeight(…