草庐IT

Canvas-EventSystem-Panel

全部标签

java - 画笔型 GUI 中的 paintComponent() 与 paint() 和 JPanel 与 Canvas

我从this得到了一些有趣的想法和批评,this和this发布(有关GUI的代码,请参阅上一篇文章)。尽管如此,我仍然对某些事情感到困惑。主要是,显示用户介绍图形的成本最低的方法是什么?更具体地说,我通过在MouseDragged()方法中创建此类的对象,使用了JPanel类中的paintComponent()方法连同paintComponent(getGraphics())方法(AuxClass2和AuxClass1相应地)。显然,使用getGraphics()和paintComponent()而不是repaint()是个坏主意,我怀疑与内存有关利用。每次用户拖动鼠标时调用AuxCl

微信小程序canvas画布绘制base64图片并保存图片到相册中

WXML部分:保存图片样式可以根据自己需求自行调整canvas绘制成图片部分://写在接口成功回调中constfs=wx.getFileSystemManager();varcodeimg=wx.env.USER_DATA_PATH+'/'+'.jpg';fs.writeFile({filePath:codeimg,data:res.data.slice(22),//code就是接口返回的base64数据(分割掉前面的data:image/png;base64,)encoding:'base64',success:()=>{//console.log(codeimg);wx.createSel

python - `with canvas:`(Python `with something() as x:`)如何在 Kivy 中隐式工作?

我刚刚意识到在Kivy中使用withPython语句添加顶点指令的方式有些神秘(至少对我而言)。例如,with的使用方式是这样的:...somecodeclassMyWidget(Widget)...somecodedefsome_method(self):withself.canvas:Rectangle(pos=self.pos,size=self.size)一开始我以为只是偶尔用到的withPython语句而已。但突然我意识到它不是。通常它看起来更像这样(示例取自here):withopen('output.txt','w')asf:f.write('Hithere!')通常在实

python - Tkinter Canvas 将项目移动到顶层

我有一个TkinterCanvas小部件(Python2.7,而不是3),在这个Canvas上我有不同的项目。如果我创建一个与旧项目重叠的新项目,它将在前面。我现在如何将旧项目移动到新创建的项目前面,甚至是Canvas上所有其他项目的前面?到目前为止的示例代码:fromTkinterimport*root=Tk()canvas=Canvas(root,width=200,height=200,bg="white")canvas.grid()firstRect=canvas.create_rectangle(0,0,10,10,fill="red")secondRect=canvas.c

Python Tkinter - 在初始声明后更改 Canvas 大小

我想在添加一些小部件后更改Canvas大小例子:fromTkinterimport*master=Tk()w=Canvas(master,width=100,height=100)w.config(bg='white')w.create_oval(90,90,110,110,width=0,fill="ivory3")w=Canvas(master,width=200,height=200)w.pack()mainloop()但似乎当我重新声明Canvas大小时,对象被删除了。我在Canvas上创建了一些对象后是否可以更新Canvas? 最佳答案

python - 在 Tkinter Canvas 中移动球

这是一个非常基本的程序,我想用它制作两个移动的球,但实际上只有一个在移动。我也尝试了一些变体,但无法让第二个球移动;另一个相关问题-有些人使用move(object)方法来实现这一点,而其他人则使用delete(object)然后重绘它。我应该使用哪一个?为什么?这是我的代码,它只动画/移动一个球:fromTkinterimport*classBall:def__init__(self,canvas,x1,y1,x2,y2):self.x1=x1self.y1=y1self.x2=x2self.y2=y2self.canvas=canvasself.ball=canvas.create

python ,Tkinter : How to get coordinates on scrollable canvas

我有一个带滚动条的TkinterCanvas,还有一些项目,当我单击它们时,它应该返回坐标。(使用Python。)这适用于最初在窗口中可见的对象。但是,当我向下滚动并且Canvas上更下方的项目进入View时,单击时我没有获得它们的Canvas坐标,而是窗口坐标。我找不到关于如何获取绝对坐标的信息,所以我想知道这里是否有人知道如何做?谢谢。 最佳答案 查看Canvas小部件的文档here.Toconvertfromwindowcoordinatestocanvascoordinates,usethecanvasxandcanvasy

python - 使用鼠标移动 tkinter Canvas

我想通过鼠标单击(按住)+鼠标移动来移动整个tkinterCanvas。我尝试使用canvas.move但不幸的是它不起作用。如何滚动整个Canvas?(不是移动Canvas的每个元素,而是滚动Canvas的显示区域)importTkinterasTkoldx=0oldy=0defoldxyset(event):globaloldx,oldyoldx=event.xoldy=event.ydefcallback(event):#Howtomovethewholecanvashere?printoldx-event.x,oldy-event.yroot=Tk.Tk()c=Tk.Canva

python - 如何在 tkinter Canvas 上创建按钮?

我创建了一个框架,然后创建了一个Canvas。接下来我要做的是在Canvas上添加一个Button。但是,当我打包Button时,我看不到Canvas!这是我尝试过的:fromTkinterimportTk,Canvas,Frame,ButtonfromTkinterimportBOTH,W,NW,SUNKEN,TOP,X,FLAT,LEFTclassExample(Frame):def__init__(self,parent):Frame.__init__(self,parent)self.parent=parentself.initUI()definitUI(self):self.

python - 了解 Tkinter Canvas 的性能限制

我创建了一个简单的应用程序来使用Tkinter的Canvas小部件显示数据的散点图(参见下面的简单示例)。绘制10,000个数据点后,应用程序变得非常滞后,这可以通过尝试更改窗口大小看出。我意识到添加到Canvas的每个项目都是一个对象,因此在某些时候可能会出现一些性能问题,但是,我预计该级别远高于10,000个简单的椭圆形对象。此外,我可以接受在绘制点或与它们交互时出现一些延迟,但在绘制点之后,为什么仅仅调整窗口大小会这么慢?看完effbot'sperformanceissueswiththeCanvaswidget似乎在调整大小时可能有一些不需要的连续空闲任务需要忽略:TheCan