第二部分 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 = 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.mzph.cn/web/205.shtml

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

相关文章

当下AI驱动下的广告营销,是一个“领先的落后行业” | 第八届社交媒体风向大会

内容创作者调研显示:AI渗透率竟不足两成? 人类是智能化发展的缔造者,也是前行的绊脚石? 为什么说广告营销行业是“领先的落后行业”? 针对AI浪潮下社交媒体领域的发展,4月15日的风向大会上,微播易创始人…

基于SSM+Jsp+Mysql的准速达物流管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

MAC M1版IDEA热部署JRebel

1、在idea里面安装jrebel插件 2、下载激活工具:ReverseProxy_darwin_amd64 下载地址(Mac早期用户使用Safari下载,不要用Chrome,否则下载之后会把.dms后缀名去掉) 特别注意:M1用户请使用下面的下载&#xff…

【LeetCode热题100】【堆】前 K 个高频元素

题目链接:347. 前 K 个高频元素 - 力扣(LeetCode) 要找出前K个出现频率最多的元素,可以先用哈希表存储每个元素出现的次数,然后建立一个容量为K的小顶堆,遍历哈希表找到更高频的元素入堆进行堆调整&#x…

擎耀解码奔驰LED矩阵大灯大灯技术方案及九大特点

在汽车工业的照明领域,梅赛德斯-奔驰一直是创新的先锋。其最新的ABD矩阵大灯技术方案,不仅体现了品牌对安全和舒适驾驶体验的不懈追求,更是智能照明系统发展的一个里程碑。本文将详细介绍这一技术的构成、工作原理及其带来的益处。 ABD矩阵大…

正确理解Go语言中的sync.Cond

在sync包的同步原语中,sync.Cond可能是最少被使用和理解的。但是,它提供了我们无法通过channel实现的功能。下面我们通过一个具体的示例来展示sync.Cond何时有用以及如何使用它。 下面的示例实现了捐赠目标机制:每当达到特定目标时都会发出警报的应用程序。我们将有一个gor…

第46篇:随机存取存储器(RAM)模块<五>

Q:本期我们使用Quartus软件的IP Catalog工具创建双端口RAM。 A:前期创建的RAM存储模块只有一个端口,同时为读/写操作提供地址。我们将再创建一个具有两个地址输入端口的RAM模块,分别为读操作和写操作提供地址。选择Basic Functio…

【笔试强训】双指针的思想!

1.数组中字符串的最小距离 题目链接 解题思路&#xff1a; 小技巧 ✌&#xff1a;标记两个字符串是否被找到&#xff0c;每次找到一个字符串就更新一次答案来保证找到的是最小距离。 实现代码&#xff1a; #include <iostream> using namespace std;int main() {in…

详解HashMap 的⻓度为什么是 2 的幂次⽅

通过将 Key 的 hash 值与 length-1 进行 & 运算,实现了当前 Key 的定位,2 的幂次方可以减少冲突(碰撞)的次数,提高 HashMap 查询效率; 为什么说可以减少碰撞的次数? 如果 length 不是 2 的次幂,比如 length 为 15,则 length-1 为 14,对应的二进制为 1110,与hash 值的二进…

python学习笔记B-06:序列结构之列表--列表的创建和删除

序列结构主要有列表、元组、字典、集合和字符串&#xff0c;列表是要学习的第一种序列结构。下面是列表的创建和删除方法。 import random #导入一个随机数发生器 print("创建列表方法1&#xff1a;直接列表名&#xff0c;等号&#xff0c;方括号中间内容用逗号隔开&quo…

我的角度看待人工智能

人工智能是一门研究如何使计算机模拟人类智能行为和思维过程的学科&#xff0c;它涉及到多个领域&#xff0c;包括计算机科学、心理学、哲学、语言学等。人工智能的核心目标是让机器能够执行类似于人类的智能活动&#xff0c;如学习、推理、思考、规划等。 人工智能的研究可以分…

工业网络交换机的网络容错机制

在工业领域&#xff0c;网络的稳定性和可靠性至关重要。工业网络交换机作为工业网络的核心设备之一&#xff0c;其网络容错机制对于确保工业网络的稳定运行至关重要。本文将深入探讨工业网络交换机的网络容错机制&#xff0c;以及其在保障工业网络稳定性方面的重要作用。 1. 工…

【贪心算法经典应用】活动选择详解 python

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 python数据分析…

2007. 从双倍数组中还原原数组

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 一个整数数组 original 可以转变成一个 双…

ChatGPT版论文写作秘籍

ChatGPT无限次数:点击直达 ChatGPT版论文写作秘籍 在当今科技飞速发展的时代&#xff0c;人工智能技术的应用越来越广泛。其中&#xff0c;自然语言处理领域的ChatGPT模型在辅助写作方面展现出了非凡的能力。本文将为大家介绍如何利用ChatGPT改善论文写作的效率和质量。 Chat…

Android开发:发送验证码验证手机号——榛子云短信服务

榛子云短信官网 点击注册后进行登录 页面如下图所示很是简洁&#xff0c;也省去了很多复杂的流程 需要进行充值 价格相对公道&#xff0c;个人开发测试完全够用 我的应用中有后续开发要用到的AppId和AppSecret 短信模板中可以根据个人需要进行编辑但是要进行审核 后续开发中需…

python自动化之网易自动点歌

这个代码是是使用的pyautogui库和pyperclip库完成的&#xff0c;这个库是开源的地址如下&#xff1a;https://github.com/asweigart/pyautogui这里详细的用法想学习的可以到这看看 下面是代码&#xff1a; import pyautogui import subprocess import pyperclip import time i…

【大模型书籍分享】从零开始大模型开发与微调:基于PyTorch与ChatGLM

今天又来给大家推荐一本大模型方面的书籍<从零开始大模型开发与微调&#xff1a;基于PyTorch与ChatGLM>。 本书使用PyTorch 2.0作为学习大模型的基本框架&#xff0c;以ChatGLM为例详细讲解大模型的基本理论、算法、程序实现、应用实战以及微调技术&#xff0c;为读者揭…

【蓝桥杯2025备赛】素数判断:从O(n^2)到O(n)学习之路

素数判断:从O( n 2 n^2 n2)到O(n)学习之路 背景:每一个初学计算机的人肯定避免不了碰到素数&#xff0c;素数是什么&#xff0c;怎么判断&#xff1f; 素数的概念不难理解:素数即质数&#xff0c;指的是在大于1的自然数中&#xff0c;除了1和它本身不再有其他因数的自然数。 …

执行 kubeadm join 报错

执行 kubeadm join 192.168.31.220:6443 --token 2fn4t4.syeegrav0nadt9mh --discovery-token-ca-cert-hash sha256:df5eee**********************************2e6e653aa83ea8c32 报如下错误 error execution phase preflight: [preflight] Some fatal errors occurred: …