当前位置: 首页 > news >正文

tkinter制作任意图形窗口

import tkinter
from PIL import Image, ImageTkdog = tkinter.Tk()
# 设置图片描绘的坐标,注意乘号是字母x
dog.geometry('500x500+200+100')
# 不允许修改大小
dog.resizable(False, False)
# 不显示标题栏
dog.overrideredirect(True)
# 设置白色透明色,这样图片中所有白色区域都被认为是透明的了
dog.wm_attributes('-transparentcolor', 'white')# 打开图片并设置尺寸
image = Image.open(r'D:\bg.png').resize((500, 500))
image = ImageTk.PhotoImage(image)
lbImage = tkinter.Label(dog, image=image)
lbImage.pack(fill=tkinter.BOTH, expand=tkinter.YES)# 鼠标左键按下时设置为1表示可移动窗口,抬起后不可移动
canMove = tkinter.IntVar(dog, value=0)
# 记录鼠标左键按下的位置
X = tkinter.IntVar(dog, value=0)
Y = tkinter.IntVar(dog, value=0)# 鼠标左键按下时的事件处理函数
def onLeftButtonDown(event):X.set(event.x)Y.set(event.y)canMove.set(1)lbImage.bind('<Button-1>', onLeftButtonDown)# 鼠标移动时的事件处理函数
def onLeftButtonMove(event):if canMove.get()==0:returnnewX = dog.winfo_x()+(event.x-X.get())newY = dog.winfo_y()+(event.y-Y.get())g = f'500x500+{newX}+{newY}'dog.geometry(g)lbImage.bind('<B1-Motion>', onLeftButtonMove)# 鼠标左键抬起时的事件处理函数
def onLeftButtonUp(event):canMove.set(0)lbImage.bind('<ButtonRelease-1>', onLeftButtonUp)# 鼠标右键抬起时的事件处理函数(关闭事件)
def onRightButtonUp(event):dog.destroy()lbImage.bind('<ButtonRelease-3>', onRightButtonUp)dog.mainloop()

相关文章:

tkinter制作任意图形窗口

import tkinter from PIL import Image, ImageTkdog tkinter.Tk() # 设置图片描绘的坐标&#xff0c;注意乘号是字母x dog.geometry(500x500200100) # 不允许修改大小 dog.resizable(False, False) # 不显示标题栏 dog.overrideredirect(True) # 设置白色透明色&#xff0c;这…...

视频监控综合管理平台EasyCVR多分屏默认播放协议的配置优化

视频监控综合管理平台EasyCVR具备视频融合汇聚能力&#xff0c;TSINGSEE青犀视频平台基于云边端一体化架构&#xff0c;可支持多协议、多类型设备接入&#xff0c;包括&#xff1a;NVR、IPC、视频编码器、无人机、车载设备、智能手持终端、移动执法仪等。国标GB28181视频平台Ea…...

2023杭电多校第三场 1012.Noblesse Code

传送门:Vjudge 前题提要:一道挺有意思的数论题.赛时对于这道题没什么想法,但是赛后细品之后其实感觉也就那么一回事.但是这种 更相损减术与辗转相除法 相转化的题目还是有点典的,需要好好消化一下. 首先看完题目.我们需要考虑的是 ( A , B ) (A,B) (A,B)与 ( a , b ) (a,b) (…...

ubuntu qt 环境变量配置

ubuntu设置qt环境变量 qt 安装路径为&#xff1a;/home/ljn/Qt5.12 包含bin等目录的路经&#xff1a;/home/ljn/Qt5.14.2/5.14.2/gcc_64 环境变量配置 打开配置文件&#xff1a; sudo gedit /etc/profile在底部添加&#xff1a; export PATH"/home/ljn/Qt5.14.2/Tool…...

按照Vue写WPF(0):功能实现

文章目录 前言VUE具有的功能如何专业到WPF上面 前言 我最近学了WPF之后我终于知道为什么WPF学习曲线那么陡峭了。因为WPF没有组件化的思想&#xff0c;或者说没有按照Vue一样去模板化开发。 为什么我推荐Vue的想法呢。因为Vue最大的特点就是模板化&#xff0c;让Vue工程师去写…...

vb+ACCESS教师管理系统设计设计与实现

--------------前言-------------- 教师管理系统是一个企事业单位不可缺少的部分,它的内容对于企事业单位的决策者和管理者来说都至关重要,所以教师管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在…...

C++笔记之对指针类型的变量进行+1操作

C笔记之对指针类型的变量进行1操作 在C中&#xff0c;对指针类型的变量进行"1"操作会根据指针的数据类型而有所不同。这涉及到指针的算术运算&#xff0c;C中的指针算术运算是根据指针所指向的数据类型的大小来进行的。 code review! 文章目录 C笔记之对指针类型的…...

第六章 游标

游标 本文内容较短&#xff0c;我们只是为了更容易的实现b树&#xff0c;简单地重构一下。 我们将添加一个Cursor 表示表中对象的位置。Cursor应提供如下几个方面的能力&#xff1a; 在表的开头创建游标在表的末尾创建游标访问游标指向的行将游标前进到下一行 这是本文我们…...

Github上方导航栏介绍

Code Watch&#xff1a;相当于关注&#xff0c;到时候这个项目又有什么操作&#xff0c;就会以通知的形式提醒你。 Fork&#xff1a;也就是把这个项目拉到你的仓库里&#xff0c;之后你可以对该代码进行修改&#xff0c;之后你可以发起Pull Request&#xff0c;简称PR&#xf…...

【vue3+ts】TypeError: Cannot read properties of undefined (reading ‘commit‘)

项目场景&#xff1a; <script lang"ts"> import { defineComponent, reactive, ref } from vue import { useStore } from vuex export default defineComponent({name: Login.vue,components: {},setup () {const onFormSubmit (result: boolean) > {if…...

seq2seq、attention、self-attention、transformer、bert

seq2seq seq2seq&#xff1a;输入序列&#xff0c;输出序列&#xff0c;将输入的语言转为一个向量&#xff0c;最后输出再将向量转为语言shortcoming:The final state is incapable of remembering a long sequence.即太长了记不住 attention 用attention可以改进seq2seq中的…...

07.计算机网络——数据链路层

文章目录 数据链路层以太网帧格式MAC地址理解MAC地址和IP地址认识MTUMTU对IP协议的影响MTU对UDP协议的影响MTU对于TCP协议的影响 ARP协议**ARP**协议的作用ARP协议的工作流程ARP数据报的格式 数据链路层 ​ 数据链路层在物理层提供的服务的基础上向网络层提供服务&#xff0c;…...

海外服务器推荐:国外高性能服务器免费

对于寻找高性能的海外服务器&#xff0c;海外服务器推荐指导&#xff0c;我建议您考虑以下因素&#xff1a; 1. 可靠性和性能&#xff1a;选择信誉良好、可靠性好的服务器提供商。它们应该有稳定的网络基础设施和高性能的服务器硬件来满足您的需求。 2. 位置选择&#xff1a;…...

Python基于PyTorch实现卷积神经网络分类模型(CNN分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 卷积神经网络&#xff0c;简称为卷积网络&#xff0c;与普通神经网络的区别是它的卷积层内的神经元只覆…...

JMeter 配置环境变量步骤

通过给 JMeter 配置环境变量&#xff0c;可以快捷的打开 JMeter&#xff1a; 打开终端。执行 jmeter。 配置环境变量的方法如下。 Mac 和 Linux 系统 1、在 ~/.bashrc 中加如下内容&#xff1a; export JMETER_HOMEJMeter所在目录 export PATH$JAVA_HOME/bin:$PATH:.:$JME…...

Rust vs Go:常用语法对比(六)

题图来自[1] 101. Load from HTTP GET request into a string Make an HTTP request with method GET to URL u, then store the body of the response in string s. 发起http请求 package mainimport ( "fmt" "io/ioutil" "net" "net/http…...

css元素定位:通过元素的标签或者元素的id、class属性定位

前言 大部分人在使用selenium定位元素时&#xff0c;用的是xpath元素定位方式&#xff0c;因为xpath元素定位方式基本能解决定位的需求。xpath元素定位方式更直观&#xff0c;更好理解一些。 css元素定位方式往往被忽略掉了&#xff0c;其实css元素定位方式也有它的价值&…...

java享元模式

在Java中实现享元模式&#xff0c;可以通过创建一个享元工厂&#xff08;FlyweightFactory&#xff09;和享元对象&#xff08;Flyweight&#xff09;来完成。享元模式用于共享可复用对象&#xff0c;以节省内存和提高性能。 下面是一个简单的示例&#xff1a; 首先&#xff…...

ESP32(MicroPython) 两轮差速五自由度机械臂小车

这次的项目在软件上没多少调整&#xff0c;但本人希望分享一下硬件上的经验。 小车使用两轮差速底盘&#xff0c;驱动轮在小车中间&#xff0c;前后都要万向轮。这种形式可以实现0转弯半径&#xff0c;但受万向轮及用于加高的铜柱的规格限制&#xff0c;两个万向轮难以调到相同…...

mysql基本函数(五)

目录 一、数字函数二、字符函数三、日期时间函数3.1 获取系统日期时间的函数3.2 日期格式化函数3.3 日期偏移计算3.4 日期之间相隔的天数 四、条件函数4.1 IF语句4.2 条件语句 一、数字函数 函数功能用例ABS绝对值ABS(-100)ROUND四舍五入ROUND(4.62)FLOOR向下取值FLOOR(9.9)CE…...

STM32驱动AS-108M/AD-013指纹模块底层协议与高可靠实现

1. SparkFun串口指纹识别模块AS-108M与AD-013底层驱动技术解析 SparkFun Serial Fingerprint Scanners AS-108M 和 AD-013 是两款基于国产中科芯&#xff08;CETC&#xff09;ZFM-20系列指纹识别模组核心的工业级串口指纹传感器。尽管官方文档简略&#xff0c;但通过逆向分析其…...

仅限核心架构师查阅:Python无锁GIL环境下的并发成本熔断机制(含实时监控脚本+自动降级策略)

第一章&#xff1a;Python无锁GIL环境下的并发模型成本控制策略全景概览在标准 CPython 解释器中&#xff0c;全局解释器锁&#xff08;GIL&#xff09;本质限制了多线程对 CPU 密集型任务的并行执行能力。然而&#xff0c;“无锁 GIL 环境”并非指移除 GIL 本身&#xff0c;而…...

SparkSQL临时表实战:4种高效创建方式与应用场景解析

1. SparkSQL临时表基础与应用场景 临时表是SparkSQL中处理数据的重要工具&#xff0c;它允许我们在数据处理过程中暂存中间结果&#xff0c;避免重复计算。我在实际项目中经常遇到需要多次引用同一数据集的情况&#xff0c;这时候临时表就能大显身手。比如做数据清洗时&#xf…...

超高效!这款音视频转文字神器,让你告别手动输入!

今天给大家推荐一款非常实用的软件——“Whisper”&#xff0c;它是一款功能强大的音视频转文字工具。这款软件是绿色版&#xff0c;双击打开后&#xff0c;会弹出一个黑色的界面框&#xff0c;请不要关闭它。使用这款软件非常简单。首先&#xff0c;点击【选择文件】按钮&…...

英飞凌TLE9954 GPIO配置避坑指南:OUT.Px和GPIOx寄存器到底怎么用?

英飞凌TLE9954 GPIO配置避坑指南&#xff1a;OUT.Px和GPIOx寄存器到底怎么用&#xff1f; 在嵌入式开发中&#xff0c;GPIO&#xff08;通用输入输出&#xff09;是最基础也最常用的功能模块之一。英飞凌TLE9954作为汽车电子领域广泛应用的微控制器&#xff0c;其GPIO模块设计精…...

Pangolin变量系统详解:实时调试与参数调优的终极方案

Pangolin变量系统详解&#xff1a;实时调试与参数调优的终极方案 【免费下载链接】Pangolin Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input. 项目地址: https://gitcode.com/gh_mir…...

单个关键词优化工具如何与其他SEO策略结合使用_单个关键词优化工具能够帮助分析网站的核心竞争力吗

单个关键词优化工具如何与其他SEO策略结合使用 在当今的数字营销中&#xff0c;单个关键词优化工具在SEO策略中扮演着重要的角色。单个关键词优化工具不仅能帮助分析网站的核心竞争力&#xff0c;还能在整体SEO策略中发挥关键作用。单个关键词优化工具如何与其他SEO策略结合使…...

别再只搜字符串了!x64dbg逆向破解卡密软件的另一种思路:从API断点MessageBoxW开始

逆向工程实战&#xff1a;突破字符串搜索局限的API断点追踪法 在逆向分析领域&#xff0c;字符串搜索常被视为破解卡密验证的"第一板斧"。但当你面对一个精心设计的商业软件时&#xff0c;这招往往会失灵——字符串被混淆、关键提示信息被加密、甚至整个代码段都被加…...

打造一个产品评论分析AI工具

客户评论是公司可访问的最丰富的产品反馈来源之一。它们揭示了客户在购买后如何实际体验产品&#xff0c;他们喜欢什么&#xff0c;什么让他们沮丧&#xff0c;他们期望什么&#xff0c;以及产品在哪里不足。 这种反馈特别有价值&#xff0c;因为它是自发的。客户自然会谈及对…...

网易云音乐无损解析工具:从音质痛点到音乐收藏全方案

网易云音乐无损解析工具&#xff1a;从音质痛点到音乐收藏全方案 【免费下载链接】Netease_url 网易云无损解析 项目地址: https://gitcode.com/gh_mirrors/ne/Netease_url 你是否曾在制作音乐混剪时&#xff0c;因找不到高解析度音频素材而妥协&#xff1f;是否为整理多…...