#coding=utf-8
import wx
class DragController(wx.Control):
"""Just a little control to handle dragging the text from a text
control. We use a separate control so as to not interfere with
the native drag-select functionality of the native text control."""
def __init__(self, parent, source, size=(25,25)):
wx.Control.__init__(self, parent, -1, size=size,
style=wx.SIMPLE_BORDER)
self.source = source
self.SetMinSize(size)
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
def OnPaint(self, evt):
# draw a simple arrow
dc = wx.BufferedPaintDC(self)
dc.SetBackground(wx.Brush(self.GetBackgroundColour()))
dc.Clear()
w, h = dc.GetSize()
y = h/2
dc.SetPen(wx.Pen("dark blue",2))
dc.DrawLine(w/8,y,w-w/8,y)
def OnLeftDown(self,evt):
text=self.source.GetValue()
data=wx.TextDataObject(text)
dropSource=wx.DropSource(self)#创建释放源
dropSource.SetData(data)#设置数据
result=dropSource.DoDragDrop(wx.Drag_AllowMove)#执行释放
#iftheuserwantstomovethedatathenweshoulddeleteit
#fromthesource
if result== wx.DragMove:
self.source.SetValue("")#如果需要的话,删除源中的数据
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,title="DropSource")
self.SetSize((400,400))
p=wx.Panel(self)
#createthecontrols
label1=wx.StaticText(p,-1,"Put some text in this control:",size=(200,100))
label2=wx.StaticText(p,-1,
"Then drag from the neighboring bitmap and\n"
"drop in an application that accepts dropped\n"
"text,such as MSWord.",size=(200,100))
text=wx.TextCtrl(p,-1,"Sometext")
dragctl=DragController(p,text)
#setupthelayoutwithsizers
sizer=wx.BoxSizer(wx.VERTICAL)
sizer.Add(label1,0,wx.ALL,5)
hrow=wx.BoxSizer(wx.HORIZONTAL)
hrow.Add(text,1,wx.RIGHT,5)
hrow.Add(dragctl,0)
sizer.Add(hrow,0,wx.EXPAND|wx.ALL,5)
p.SetSizer(sizer)
sizer.Fit(self)
app=wx.PySimpleApp()
frm=MyFrame()
frm.Show()
app.MainLoop()
分享到:
相关推荐
毕业设计,基于Python+Django+Vue+MySql开发的前后端分离的秸秆发酵预测管理系统,内含Python完整源代码 秸秆发酵数据预测管理后台 使用说明 安装 nodejs,版本大于16就可以了,nodejs官网 安装 Python3 后端: ...
毕业设计,基于Python+Flask+PyCharm开发的二手交易购物商城,内含Python完整源代码,数据库脚本 Python基于Flask框架二手交易购物商城设计毕业源码案例设计 技术环境: PyCharm + Flask + Python3.7 + Redis + ...
Python3.x+Pyqt5实现界面和逻辑分离案例01_自己写的,有UI界面源代码(更正之前的错误代码)。
Pynsource 版本号:版本1.77(2020年9月9日) 作者:概述将Python源代码反向工程为UML类图。安装/使用适用于Mac / Windows / Linux的Pynsource二进制应用程序安装程序-请参阅价格实惠的还提供了其他功能,例如缩放和...
压缩包内是基于Windows下基于 python 和 Qt 实现的简单音乐播放器 包含源代码和使用的源图片,大量注释,让你能够轻松看懂 播放器实现的功能: - 显示播放列表 - 添加 mp3 文件 - 删除指定 mp3 文件 - 清空播放列表...
1. 前后端分离:前端 Echarts JavaScript ...2. 数据动态更新:服务端触发数据源的变化,前端AJAX自动获取最新数据并渲染到Echarts图表上; 3. 数据格式:JSON; 更多Python&Echarts版的数据可视化大屏源码: ...
阅读建议:程序是使用pycharm平台来调试的,程序内容建立在python和pyqt5相关知识上的,需要有一些基础的知识,至少懂得如何打开python编辑器,如何安装python模块,如pyqt5等,如果下载后,尽量先将源代码调试一遍...
基于Python的GUI库Tkinter实现将.MP4格式文件转换为.GIF文件,可选拖拽和点击两种上传文件方式,进度条同步显示上传和转换进程(文章链接:https://blog.csdn.net/qq_36584673/article/details/133268123)的源代码...
程序使用最简单的VB6开发工具直接拖动控件,来完成Python的TKinter的GUI布局,可以在VB界面上设置控件的一些属性,最终自动生成必要的代码(包括回调函数框架),代码生成后仅需要在对应的回调函数中增加相应的逻辑...
低代码数据集成,可视化处理流中每一步结果,可使用分布式pandas引擎拓展至tb级大型数据集,使用多种内置转换算法或自定义代码快速实现数据传输管道。 单任务和dag任务工作流调度,内置python,shell,数据集成等...
9.进度条拖动 10.歌词显示 11.底部音乐 tabbar 左右切换 12.UI美化 |_ iOS:高斯模糊、磨砂玻璃 |_ 安卓:背景虚化 ``` ## 项目特点: ### 1.音乐接口不掉,并特殊化处理。 ### 2.docker 部署,后台可以随时...
第二部分则对第一部分的程序进行修改,增加拖放操作时,菜单提示是否移动或拷贝,还有可以通过ctrl键盘来设置移动过程中拷贝源而非会将源删除。 自定义数据MIME数据类型QMimeData,MIME是一种用于处理具有多个组成...
部分课程介绍: 课时01.PyQt5基础知识.flv 课时02.搭建PyQt5开发环境.mp4 ...向栅格布局中拖动控件.flv 课时11.在QtDesigner中同时使用水平布局和垂直布局.fIlv 课时12.在QtDesigner中同时使用栅格布局.flv
vue实现放大缩小拖拽功能 本文实例为大家分享了vue实现放大缩小拖拽功能的具体代码,供大家参考,具体内容如下 点击放大至全屏 再次点击缩小至原始 这个弹框是基于element dialog的基础上写的 1.再utils文件夹...
这篇文章,我们优先介绍超级玛丽游戏中的多状态跳跃,和行走地图拖动的原理,然后实现。并实现倒计时和金币动态效果 接下来用下面这四张图,就可以完全懂得游戏中背景是怎么会移动的。 图1 图2 图3 图4 由于...
基于Vue3的全屏拖拽上传组件 本文主要介绍了基于Vue3的全屏拖拽上传组件,分享给大家,具体如下: 知识点 浏览器拖拽 api fetch 请求 ... ondrag 当拖动元素的时候运行脚本 2. ondragstart
此脚本分为手动和自动设置源目文件夹路径,手动直接运行脚本,把源文件夹和目标文件夹拖动到命令行或终端窗口;如每次同步文件夹相同,可以设置自动模式,把脚本最下面的"自动同步"处的注释去掉并填入源目文件夹(源:...
对于中间滑块,拖动滑块部分调节音量、拖动中心部分移动窗口、单击中心部分播放或暂停音乐 程序启动会同时创建一托盘图标,左键单击托盘负责隐藏或显示悬浮球,右键托 - 不懂运行,下载完可以私聊问,可远程教学 该...