第二部分 Python提高—GUI图形用户界面编程(三)

news/2024/5/17 12:28:07

简单组件学习 Radiobutton 单选按钮、Checkbutton 复选按钮和canvas 画布

文章目录

  • `Radiobutton` 单选按钮
  • `Checkbutton` 复选按钮
  • `canvas` 画布

Radiobutton 单选按钮

Radiobutton 控件用于选择同一组单选按钮中的一个。Radiobutton 可以显示文本,也可以显示图像。

from tkinter import *
from tkinter import messagebox
class Application(Frame):def __init__(self, master=None):super().__init__(master) # super()代表的是父类的定义,而不是父类对象self.master = masterself.pack()self.createWidget()def createWidget(self):self.v = StringVar();self.v.set("F")self.r1 = Radiobutton(self, text="男性", value="M", variable=self.v)self.r2 = Radiobutton(self, text="女性", value="F", variable=self.v)self.r1.pack(side="left");self.r2.pack(side="left")Button(self, text="确定", command=self.confirm).pack(side="left")def confirm(self):messagebox.showinfo("测试","选择的性别:"+self.v.get())
if __name__ == '__main__':root = Tk()root.geometry("400x50+200+300")app = Application(master=root)root.mainloop()

这里是引用

Checkbutton 复选按钮

Checkbutton 控件用于选择多个按钮的情况。Checkbutton 可以显示文本,也可以显示图像。

from tkinter import *
from tkinter import messagebox
class Application(Frame):def __init__(self, master=None):super().__init__(master) # super()代表的是父类的定义,而不是父类对象self.master = masterself.pack()self.createWidget()def createWidget(self):self.codeHobby = IntVar();self.videoHobby = IntVar()print(self.codeHobby.get()) # 默认值是0self.c1 = Checkbutton(self, text="敲代码",variable=self.codeHobby, onvalue=1, offvalue=0)self.c2 = Checkbutton(self, text="看视频",variable=self.videoHobby, onvalue=1, offvalue=0)self.c1.pack(side="left");self.c2.pack(side="left")Button(self, text="确定", command=self.confirm).pack(side="left")def confirm(self):if self.videoHobby.get() == 1:messagebox.showinfo("测试","看视频,都是正常人有的爱好!你喜欢看什么类型?")if self.codeHobby.get() == 1:messagebox.showinfo("测试","抓获野生程序猿一只,赶紧送去学习")if __name__ == '__main__':root = Tk()root.geometry("400x50+200+300")app = Application(master=root)root.mainloop()

这里是引用
在这里插入图片描述

canvas 画布

canvas(画布)是一个矩形区域,可以放置图形、图像、组件等。我们简单介绍canvas 的使用,后续“图形绘制”会更加深入讲解。

from tkinter import *
from tkinter import messagebox
import random
class Application(Frame):def __init__(self, master=None):super().__init__(master) # super()代表的是父类的定义,而不是父类对象self.master = masterself.pack()self.createWidget()def createWidget(self):self.canvas = Canvas(self, width=300, height=200, bg="green")self.canvas.pack()# 画一条直线line = self.canvas.create_line(10, 10, 30, 20, 40, 50)# 画一个矩形.rect = self.canvas.create_rectangle(50, 50, 100, 100)# 画一个椭圆.坐标两双。为椭圆的边界矩形左上角和底部右下角oval = self.canvas.create_oval(50, 50, 100, 100)global photophoto = PhotoImage(file=r"F:\python_l\pythonProject1\60011.gif")self.canvas.create_image(150,170,image=photo)Button(self, text="画10 个矩形",command=self.draw50Recg).pack(side="left")def draw50Recg(self):for i in range(0, 10):x1 = random.randrange(int(self.canvas["width"])/2)y1 = random.randrange(int(self.canvas["height"])/2)x2 = x1 + random.randrange(int(self.canvas["width"])/2)y2 = y1 + random.randrange(int(self.canvas["height"])/2)self.canvas.create_rectangle(x1, y1, x2, y2)
if __name__ == '__main__':root = Tk()root.geometry("400x300+200+300")app = Application(master=root)root.mainloop()

这里是引用
在这里插入图片描述


http://www.mrgr.cn/p/35303112

相关文章

如何在忘记密码情况下更改Windows 10用户的密码?这里有详细步骤

如果你想更改登录用户的Windows 10密码,当你不知道当前或旧用户密码时,这篇文章已经准备好让你学习如何操作了。 使用默认管理员更改Windows 10用户密码 如果我们启用了默认管理员,那么即使我们忘记了Windows 10用户密码,我们也可以使用内置管理员访问计算机,并在没有任…

Python分析之3 种空间插值方法

插值是一个非常常见的数学概念,不仅数据科学家使用它,而且各个领域的人们也使用它。然而,在处理地理空间数据时,插值变得更加复杂,因为您需要基于几个通常稀疏的观测值创建代表性网格。 在深入研究地理空间部分之前,让我们简要回顾一下线性插值。 为了演示的目的,我将使…

快速学习nginx反向代理

反向代理 nginx方向代理配置nginx反向代理nginx负载均衡配置 nginx方向代理 将前端发送的动态请求由nginx转发到后端服务器 nginx反向代理的好处: 提高访问速度 nginx中提供缓存机制,有一些数据在进行访问的时候无需访问后端服务器之间由nginx返回数据 …

使用JSZip实现在浏览器中操作文件与文件夹

使用JSZip来实现在浏览器中创建文件与文件夹1. 引言 浏览器中如何创建文件夹、写入文件呢? 答曰:可以借助JSZip这个库来实现在浏览器内存中创建文件与文件夹,最后只需下载这个.zip文件,就是最终得结果 类似的使用场景如下:在线下载很多图片,希望这些图片能分类保存到各个…

基于XML配置bean(二)

文章目录 1.工厂中获取bean1.静态工厂1.MyStaticFactory.java2.beans.xml3.测试 2.实例工厂1.MyInstanceFactory.java2.beans.xml3.测试 3.FactoryBean(重点)1.MyFactoryBean.java2.beans.xml3.测试 2.bean配置信息重用继承抽象bean1.beans.xml2.测试 3.…

rabbitMQ入门教程(商品抢购实战)

什么是MQ? 官方地址: https://www.rabbitmq.com/docsMQ有什么用? docker方式 安装: docker run \ -e RABBITMQ_DEFAULT_USER=yourame \ -e RABBITMQ_DEFAULT_PASS=123456 \ -v mq-plugins:/plugins \ --name mq \ --hostname mq \ -p 15672:15672 \ -p 5672:5672 \ --…

网络基础-基于TCP协议的Socket通讯

一、Socket通讯基于TCP协议流程图 UDP 的 Socket 编程相对简单些不在介绍。 二、 服务端程序启动 服务端程序要先跑起来,然后等待客户端的连接和数据。 服务端程序首先调用 socket() 函数,创建网络协议为 IPv4,以及传输协议为 TCP 的…

强大的数据分析计算软件:Stata 15 for Mac 激活版

Stata 15 for Mac是一款高级统计分析软件,具有强大的数据管理和数据提取工具。以下是其功能和特点的详细介绍: 软件下载:Stata 15 for Mac 激活版版下载 数据管理:Stata 15 for Mac支持多种数据库、数据格式和计算机语言&#xff…

《QT实用小工具·二十九》托盘图标控件

1、概述 源码放在文章末尾 托盘图标控件 可设置托盘图标对应所属主窗体。 可设置托盘图标。 可设置提示信息。 自带右键菜单。 下面是demo演示: 项目部分代码如下: #ifndef TRAYICON_H #define TRAYICON_H/*** 托盘图标控件* 1. 可设置托盘图标…

【详细的Kylin使用心得】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

1.Chinese Tiny LLM_ Pretraining a Chinese-Centric Large Language Model

文章目录 摘要一、背景二、预训练数据统计信息数据处理 模型架构 三、SFT四、Learning from Human Preferences五、评估数据集和指标训练过程和比较分析安全性评估中文硬指令理解与遵循评价 六、结论 https://arxiv.org/abs/2404.04167https://github.com/Chinese-Tiny-LLM/Chi…

数据湖/数据仓库

数据湖(Data Lake)和数据仓库(Data Warehouse)的主要区别在于它们的目的、存储的数据类型、数据处理方式、数据结构、数据安全性以及数据应用。以下是相关介绍: 目的。数据湖旨在作为一个集中的存储库,存储…

软件无线电安全之GNU Radio基础 -上

GNU Radio介绍 GNU Radio是一款开源的软件工具集,专注于软件定义无线电(SDR)系统的设计和实现。该工具集支持多种SDR硬件平台,包括USRP、HackRF One和RTL-SDR等。用户可以通过GNU Radio Companion构建流程图,使用不同…

常见分类算法

一、ChatGPT 在人工智能和机器学习领域,分类算法是一种监督学习技术,用来识别输入数据所属的类别。以下是一些常见的分类算法: 1. 决策树(Decision Trees): 决策树通过创建一系列的问题或决策,来将数据…

【无标题】PHP-parse_str变量覆盖

[题目信息]: 题目名称题目难度PHP-parse_str变量覆盖1 [题目考点]: 变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。 经常导致变量覆盖漏洞场景有:$$&…

HarmonyOS-基础之状态数据共享

1、LocalStorage页面级UI状态存储,通常用于UIAbility内、页面间的状态共享(1) 先抛出一个疑问疑问:如何实现一个页面中所有组件的数据共享?解决:使用LocalStorage技术(2) 页面级状态内存存储只能在一个页面中的所有组件中共享 退出应用不存在(3) 相关APILocalStorage({name…

vue中使用aplayer插件做一个网页音乐播放器

我们在浏览网页的时候,时常会看到一些网页音乐播放器,本文以vue为例,使用aplayer插件,做一个简单的网页播放器。我们先看一下效果图效果图正常模式吸底模式当然还有迷你模式,就是能隐藏的都隐藏,这里不赘述,做相应配置就会出现对应效果。注意,吸底模式会出现上一曲下一…

视频拍摄知识+AIGC数据预处理

视角 参考链接:https://www.polarpro.com/blogs/polarpro/filmmaking-101-types-of-camera-shots-and-angles Low Angle Shot 低角度拍摄、horizontal Shot 平视、Dutch Angle Shot 荷兰角斜拍、High Angle Shot 高角度拍摄、Bird’s-eye / Aerial Shot 鸟瞰 / 航…

神通数据库测试环境调优过程

神通数据库测试环境调优过程背景 同事中午时反馈一个环境速度很慢. 我通过grafana简单看了下应用的 jvm信息还有hikari都很正常. 没有大量FullGC,也没有很多失败的提示. 感觉很奇怪. 当时已经过了中午,想着下午再看. 1点时想起来, 应用没问题, 可能是数据库的异常. 才发现自己…

golang 使用栈模拟计算器

思路: // Author sunwenbo // 2024/4/12 16:51 package mainimport ("errors""fmt""strconv" )// 使用数组来模拟一个栈的应用 type Stack struct {MaxTop int //表示栈最大可以存放数的个数Top int //表示栈底&#xff…