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

news2024/11/16 16:44:51

简单组件学习 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.coloradmin.cn/o/1605688.html

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

相关文章

基于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.…

《系统分析与设计》实验-----在线书店系统 需求规格说明书 哈尔滨理工大学PLUS完善版

文章目录 需求规格说明书1.引言1.1编写目的1.2项目背景1.3定义1.4参考资料 2.任务概述2.1目标2.2运行环境2.3条件与限制 3.数据描述3.1静态数据3.2动态数据3.3数据库介绍3.4数据词典3.5数据采集 4.功能需求4.1功能划分4.2功能描述…

transformer架构详细详解

一、transformer的贡献 transformer架构的贡献:该架构只使用自注意力机制,没有使用RNN或卷积网络。且可以实现并行计算,加快模型训练速度。 (将所有的循环层全部换成:multi-headed self-attention) 二、t…

Day13-Python基础学习之数据分析案例

数据分析案例 data_define.py # 数据定义的类 class Record:def __init__(self, date, order_id, money, province):self.date dateself.order_id order_idself.money moneyself.province province ​def __str__(self):return f"{self.date}, {self.order_id}, {se…

OpenGL:图元

OpenGL的图元 点 GL_POINTS: 将顶点绘制成单个的点 线 GL_LINES:将顶点用于创建线段,2个点成为一条单独的线段。如果顶点个数是奇数,则忽略最后一个。 顶点:v0, v1, v2, v3, … , vn,线段:v0-v1, v2-v3, v4-v5, … , vn-1 - vn GL_LINE_STRIP:将顶点用于创建线段,…

驱动创新成长,智能费控助力国央企财务数智化升级

如果说中小企业是我国国民经济的毛细血管,那么国央企就是承载着我国市场发展的主动脉,是国民经济的重要支柱。今年以来,面对复杂严峻的国内外发展环境,国央企锚定目标,深入开展提质增效专项行动,打出深化改…

基础算法之二分算法

前言 本次博客,将要介绍二分算法的基本原理以及如何使用,深入浅出 二分可以针对整型以及浮点型接下来对其讲解希望对小白有所帮助吧 整型的二分法 一般要在一个数组中猜出一个数是否存在我们可以遍历一遍整个数组,判断是否存在&#xff0…

python学习笔记B-07:序列结构之列表--列表的常用函数和方法

以xx_函数名(列表名)的形式出现的是函数;以xx_列表名.xx_方法名的形式出现的是方法。 列表常用函数如下: len():计算列表元素数量 max():获取列表元素最大值 min():获取列表元素最小值 sum():计算列表中各元素之和 列表常用方法如…

wps导出pdf文献引用不能跳转解决办法

问题描述 本科论文参考文献使用wps设置交叉引用,但导出pdf后无法跳转引用 尝试 用office word打开文件word版跳转没有问题, 另存为pdf或导出pdf。 但是pdf版跳转完全错误。 16跳到14.但是总体而言都是跳到包含该序号的页 要求不高的话也可以&#x…

【WebSocket连接异常】前端使用WebSocket子协议传递token时,Java后端的正确打开方式!!!

文章目录 1. 背景2. 代码实现和异常发现3. 解决异常3.1 从 URL入手3.2 从 WebSocket子协议的使用方式入手(真正原因) 4. 总结(仍然存在的问题) 前言: 本篇文章记录的是使用WebSocket进行双向通信时踩过的坑&#xff0c…

链表(C语言)

前言:前面几篇文章我们详细介绍了顺序表,以及基于顺序表来实现的通讯录。今天我们连介绍一下链表的下一个结构链表。那么链表和顺序表究竟有什么区别呢?他们两个的优缺点分别是什么。今天这篇文章就带大家了解一下链表。 目录 一.链表的概念…

新质生产力走红背后,华为云的基本盘和自我修养

文 | 智能相对论 作者 | 沈浪 今年全国两会期间走红的“新质生产力”正成为中国产业转型升级的关键方向。政府工作报告更是把“大力推进现代化产业体系建设,加快发展新质生产力”放在今年政府工作任务的重要位置。 何为新质生产力?简单来说&#xff0…

C++奇迹之旅:探索C++拷贝构造函数

文章目录 📝拷贝构造函数🌠 概念🌉特征 🌠浅拷贝(值拷贝)🌉深拷贝 🌠拷贝构造函数典型调用场景🌠应用时效率的思考🚩总结 📝拷贝构造函数 🌠 概念 在现实生…

web轮播图

思路: 例如:有5张轮播的图片,每张图片的宽度为1024px、高度为512px.那么轮播的窗口大小就应该为一张图片的尺寸,即为:1024512。之后将这5张图片0px水平相接组成一张宽度为:5120px,高度依然为:5…

SpringBoot - Logback 打印第三方 Jar 日志解决方案

问题描述 最近碰到一个很苦恼的问题&#xff0c;就是第三方的 Jar 在自己项目里日志可以正常输出&#xff0c;但是一旦被引用到其他项目里&#xff0c;就日志死活打不出来…… 解决方案 这是原来的配置 - logback.xml <?xml version"1.0" encoding"UTF-8…

5G-A有何能耐?5G-A三载波聚合技术介绍

2024年被称作5G-A元年。5G-A作为5G下一阶段的演进技术&#xff0c;到底有何能耐呢&#xff1f; 三载波聚合&#xff08;3CC&#xff09;被认为是首个大规模商用的5G-A技术&#xff0c;将带来手机网速的大幅提升。 █ 什么是3CC 3CC&#xff0c;全称叫3 Component Carriers…

python聊天室

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

一个 .net 8 + Azure 登录 + Ant Design Blazor 的基本后台框架

一个 .net 8 Azure 登录 Ant Design Blazor 的基本后台框架 主界面使用了 Ant Design Blazor 项目模板搭建 后台技术是 .net 8 Blazor run at server 模式 登录方式使用 Azure 实现了菜单导航和路由 此外实现了读取和修改本地Json文件的功能&#xff0c;不是必须的&#x…

【Python】OPC UA模拟服务器实现

目录 服务器模拟1. 环境准备2. 服务器设置3. 服务器初始化4. 节点操作5. 读取CSV文件6. 运行服务器 查看服务器客户端总结 在工业自动化和物联网&#xff08;IoT&#xff09;领域&#xff0c;OPC UA&#xff08;开放平台通信统一架构&#xff09;已经成为一种广泛采用的数据交换…

Leo赠书活动-24期 【三大层次学习企业架构框架TOGAF】文末送书

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠书活动专栏 ✨特色专栏&#xff1a;…