问题标签 [tkinter-canvas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5771 浏览

python - 支持自动换行的 Canvas create_text() 版本?

是否有create_text()支持自动换行的模式或技术?我坚持使用create_text()vs. aLabelText小部件,因为我将文本放在画布上的图像顶部。

此外,是否有一个 Tkinter API 可以截断不适合特定宽度的文本,并使用省略号之类的后缀,例如。Where very, very, very long text被转换成类似Where very, very, ....

0 投票
2 回答
4651 浏览

python - 问题动态绘制到 Tkinter 画布对象

一个问题:如何通过单击按钮动态绘制到 Tkinter Canvas 对象?

该主题最初由 user339860(参见 1)作为一个两部分问题发布,但该问题的第二部分尚未解决。我遇到了同样的问题,特别是我无法从按钮事件中绘制到 Canvas 对象。回答这个问题将帮助两个人,我自己和 user339860;请看一下。

应用程序创建左右两个框架,第二个框架包含 Canvas 对象。我在第一帧中有一个按钮,绑定到一个名为drawRectangle的函数/方法。该应用程序运行良好,它甚至使用create_rectangle方法在 Canvas 对象中绘制一个矩形,直到您单击该按钮。当您单击该按钮时,您会收到一条消息,其中包含以下内容;

tkinter_app_27Nov2010.py",第 25 行,drawRectangle self.myCan.create_rectangle(64,64,110,110,fill='blue') AttributeError: 'NoneType' object has no attribute 'create_rectangle'

我认为这可能与 Canvas 对象的范围有关,因此我创建了一个设置为None的类级别变量,但这并没有解决问题。我考虑了 Canvas显示列表(参见 2),但 Tk 手册页没有反映添加我能找到的新对象的方法。

代码:


root = Tk() myApp = Application(master=root) root.title("Tkinter 测试!") myApp.mainloop()


必须有一种方法来处理 Tkinter Canvas 对象用于更新自身的“损坏/修复显示模型”(参见 3)。请帮忙!

参考:

  1. stackoverflow.com/questions/2824041/dynamically-add-items-to-tkinter-canvas

  2. www.tcl.tk/man/tcl8.4/TkCmd/canvas.htm#M16

  3. effbot.org/tkinterbook/canvas.htm#performance-issues

0 投票
3 回答
48224 浏览

python - 如何移除 Canvas 小部件周围的浅灰色边框?

我一直在弄乱 TkinterCanvas小部件,以查看是否可以制作一些美观的小部件,我有几个问题。

首先,为什么我的 Canvas 小部件周围有浅灰色边框,我该如何摆脱它?

其次,为什么画布(2,2)中最左上角的位置?看起来应该是(0,0)。

我当前的脚本:

0 投票
2 回答
2509 浏览

python - 在 Tkinter Canvas 小部件中操作单个像素颜色

我希望能够更改 Tkinter 画布小部件中单个像素的颜色。

我的第一次尝试是,我创建了许多线条对象并将它们用作像素。

self.Ca 是我的画布小部件

片段:

虽然这有效,但它会消耗资源。在小部件变得比 100X100 大得多后,性能迅速下降。

有没有更好的办法?

0 投票
1 回答
7593 浏览

python - tkinter 画布项目配置

我正在尝试制作一个骰子对象,并且我希望能够控制点颜色。我用黑色填充创建了点,并尝试使用将点更改为红色

但它似乎没有效果。没有错误,所以我想知道为什么没有出现更改。

最小工作示例:

0 投票
3 回答
2258 浏览

python - Python:PIL - [Errno 32] 保存 .png 时管道损坏

我在这里尝试做的是使用 PIL 将 Tkinter Canvas 的内容保存为 .png 图像。

这是我的保存功能(“图表”是画布)。

但它得到了这个错误:

我在 Windows 7,Python 2.7.1 上运行它。

我该如何进行这项工作?

0 投票
2 回答
69358 浏览

python - tkinter:在画布上使用滚动条

我正在尝试使画布可滚动。但是,一旦我尝试设置滚动条以使用画布,tkinter 似乎完全忽略了我最初为画布设置的尺寸。我尝试将它们全部打包在一个框架中,将画布设置为填充框架,然后设置框架大小,但这会出现同样的问题,除非我也将框架设置为填充窗口,这不是我想要的. 基本上,我想要一个带有滚动条的固定大小的画布。我当前的代码如下所示(在 python 3.1 中):

0 投票
1 回答
7659 浏览

python - 如何将 Tkinter 画布坐标转换为窗口?

有没有办法将画布坐标转换为 Tkinter 中的窗口坐标?

这与将窗口坐标转换为画布坐标相反,它是这样完成的:

0 投票
1 回答
22866 浏览

python - Tkinter 小部件上的垂直和水平滚动条

我正在尝试将数据库的内容输出到 Tkinter 小部件。数据库有足够的行和列,我需要同时启用水平和垂直滚动条,但我很难让水平和垂直滚动同时工作。我不知道使用哪个 Tkinter 小部件,但这是我当前的实现:

在这个实现中,我只能在一个方向上滚动,这取决于我如何打包画布:

我只需要让水平和垂直滚动同时工作,或者找到一个替代解决方案。

0 投票
2 回答
25093 浏览

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

我有一个 Tkinter Canvas 小部件(Python 2.7,而不是 3),在这个 Canvas 上我有不同的项目。如果我创建一个与旧项目重叠的新项目,它将在前面。我现在如何将旧项目移动到新创建的项目前面,或者甚至移动到画布上所有其他项目的前面?

到目前为止的示例代码:

现在我希望 firstRect 在 secondRect 前面。