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

简单组件学习 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 = master
		self.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 = master
		self.pack()
		self.createWidget()
	def createWidget(self):
		self.codeHobby = IntVar();
		self.videoHobby = IntVar()
		print(self.codeHobby.get()) # 默认值是0
		self.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 = master
		self.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 photo
		photo = 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.mfbz.cn/a/555308.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CUDA编程---线程束洗牌指令

从Kepler系列的GPU(计算能力为3.0或更高)开始,洗牌指令(shuffle instruction)作为一种机制被加入其中,只要两个线程在相同的线程束中,那么就允许这两个线程直接读取另一个线程的寄存器。 洗牌指…

程序员购车指南

哈喽大家好,我是咸鱼。 爱车可以说是大部分男人的天性,而我对汽车的热情却远不及对手表的钟爱(痴迷劳力士)。以至于我的朋友掏出车钥匙指着上面的苹果树标志跟我介绍奔驰 AMG 系列的强劲性能和马力时,我只能尽量假装自…

C++的继承

目录 前言 继承的概念和定义 访问权限表 基类和派生类对象的赋值转换 继承中的作用域 派生类的默认成员函数 继承与友元 继承与静态成员 复杂的菱形继承和菱形虚拟继承 菱形虚拟继承 观察内存 注意事项:对象在内存中的存储顺序是按声明的顺序存储的 …

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

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

ansible模块实战-部署rsync服务端

目录 1、根据部署流程所用到的命令找出模块 2.实战部署 2.1 服务部署:yum 安装 2.2 准备好rsync服务的配置文件 ,并将配置文件通过copy模块分发给192.168.81.136这台受控主机 2.3 创建虚拟机用户 2.4 创建密码文件和改权限 2.5 模块对应目录&…

2024百度网盘超级会员怎么购买才能最省钱且不会踩坑?我来给你分享一下

不知道百度网盘超级会员怎么买最便宜,我来告诉你通过百度网盘最新优惠活动最低仅需188元/年。下面就和大家详细分享百度网盘会员最便宜的购买方法,值得你收藏和点赞!当我们需要选择网盘时,大部分同学都会选择百度网盘,…

2024年五一杯数学建模B题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…

python聊天室

python聊天室 文章目录 python聊天室chat_serverchat_client使用方式1.局域网聊天2.公网聊天 下面是一个简单的示例,包含了chat_client.py和chat_server.py的代码。 chat_server chat_server.py监听指定的端口,并接收来自客户端的消息,并将消…

蓝桥杯2024年第十五届省赛真题-好数

思路:枚举所有数,每个数分别判断。代码时间复杂度虽然是n^2,但是由于判断的数长度最长是7位,用字符串处理最多只循环7次,所以最大时间复杂度小 7*10的七次方,不会超时。库中的to_string时间复杂度太大&…

自己的事情自己做:使用 Python Turtle 绘制 Python Logo

以下代码中,将向你展示一个有趣的程序,如何使用 Python Turtle 中绘制 Python Logo。Python 翻译成汉语是蟒蛇的意思,Python 的 Logo 也是两条缠绕在一起的蟒蛇。 import turtlepen turtle.Turtle() turtle.bgcolor("black") pe…

元宇宙VR虚拟线上展馆满足企业快速布展的需要

想要拥有一个VR线上虚拟展馆,展现您的城市风采或企业特色吗? 相比实体展馆搭建,VR线上虚拟展馆投入资金少,回报周期短,只需几个月的时间,您就能开始资金回笼。那么一个VR线上虚拟展馆多少钱呢? 深圳VR公司华锐视点基…

LeetCode701:二叉搜索树中的插入操作

题目描述 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。 代码 递归法 class Solution { public…

5GNR刷题

5G帧结构 5G NR帧结构的基本时间单位是( C ) A) subframe B) slot C) Tc D) symbol 5G无线帧长是多少ms(B) A) 5 B) 10 C) 20 D) 40 下面哪种子载波间隔是中国移动白皮书中规定必选(B ) A) 15KHz B) 30KHz C) 60KHz D) 120KHz 5G参数集包含哪…

【学习笔记二十】EWM TU运输单元业务概述及后台配置

一、EWM TU运输单元业务流程概述 TU是指车辆和运输单元在货场中,移动车辆或运输单元。 车辆是特定运输方式的专用化工具,车辆可以包含一个或多个运输单元,并代表运输车辆的实际实体。 运输单元是用于运输货物的车辆的最小可装载单位,运输单元可以是车辆的固定部分。 …

游游的you矩阵

题目: 游游拿到了一个字符矩阵,她想知道有多少个三角形满足以下条件: 三角形的三个顶点分别是 y、o、u 字符。三角形为直角三角形,且两个直角边一个为水平、另一个为垂直。 输入描述: 第一行输入两个正整数n,m&#…

数字营销:细分-目标-定位(STP)模式——如何实现精准营销

细分-目标-定位(STP)模型是最广为人知的营销策略之一。作为营销人员,我们倾向于追逐新鲜事物,总是追求最新、最闪亮的营销技术,并为自己领先于趋势而感到自豪。与内容营销相结合,STP模式仍然是简化营销运作…

【详细的Kylin使用心得】

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

【JavaWeb】异步请求——AJAX

目录 Ajax(Asynchronous JavaScript and XML)优点传统Web与Ajax的差异Ajax工作流程Ajax 经典应用场景XMLHttpRequest常用方法事件常用属性 ajax: GET请求和POST请求的区别 传统Ajax实现传统方式实现Ajax的不足 $.ajax()语法常用属性参数常用函数参数 Aja…

【LeetCode题解】2007. 从双倍数组中还原原数组

文章目录 [2007. 从双倍数组中还原原数组](https://leetcode.cn/problems/find-original-array-from-doubled-array/)思路:代码: 2007. 从双倍数组中还原原数组 思路: 首先,对输入的 changed 数组进行排序,以便后续操…

隐式/动态游标的创建与使用

目录 将 emp 数据表中部门 10 的员工工资增加 100 元,然后使用隐式游标的 %ROWCOUNT 属性输出涉及的员工数量 动态游标的定义 声明游标变量 打开游标变量 检索游标变量 关闭游标变量 定义动态游标,输出 emp 中部门 10 的所有员工的工号和姓名 Orac…
最新文章