问题标签 [tkinter-layout]
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.
python - 面向对象的 Tkinter,在 gui 中具有许多帧的小部件之间进行通信的最佳方式
我试图弄清楚在不同小部件之间进行通信的最佳方式是什么,其中小部件是从 tkinter 小部件继承的自定义类,并且我有几个框架(以帮助进行布局管理)。例如,考虑以下简单的 gui(为 python 3 编写,将 tkinter 更改为 python 2 的 Tkinter):
我将它们放在不同的框架中的原因是因为我想在两个不同的框架中使用不同的布局管理器来创建更复杂的布局。但是,我希望命令lower_btn
更改例如的属性upper_btn1
。
但是,我不能立即从自定义类upper_btn1
的实例中访问。is的父级,并且父级是 root(不是 GUI 实例)。如果我将父级更改为 GUI 实例,即lower_btn
CustomButton
lower_btn
frame2
frame2
lower_btn
使用时不会正确放置pack()
。如果我将父级更改frame1/frame2
为 GUI 实例,即
我原则上可以通过 from 访问,upper_btn1
但是然后没有正确放置(我不明白为什么)。我当然可以将 GUI 实例作为单独的变量在 master 之上传递给,即类似于lower_btn
self.master.master.upper_btn1
frame1/frame2
pack()
CustomButton
然后将结构更改lower_btn
为
但这是“正确”的做法吗?
那么,重组这个 gui 的最佳方法是什么?我应该将 GUI 作为主/父参数之上的单独变量传递吗?我应该更改按钮和/或框架的主/父级(并以某种方式解决布局管理问题)吗?或者我应该将按钮的命令作为 GUI 实例的方法,以便它们可以与该 GUI 中的小部件进行通信,尽管这并不像面向对象的编程?我似乎找不到一个感觉“正确”的面向对象的设计。此外,如果我将 GUI 实例 ( ) 设为主实例,为什么pack()
不起作用的解释也将不胜感激,因为这将是我直观的、最面向对象的方法。frame1/frame2
self
编辑:也许最好的方法是根本不使用框架内的框架,只使用 grid() ,然后使用 colspan/rowspan 给布局管理更多的灵活性。
python - 如何删除 Tkinter 中的行?
对 python 和 Tkinter 来说非常新。
我试图让用户输入一个数字,然后确定显示的行数。但是,当提交的新数字小于前一个数字时,不会删除旧行。
提前致谢!
示例代码:
python-2.7 - 写入文件时如何对齐或对齐行和列?
我的代码是一个 Tkinter 应用程序,用于创建账单并打印它。
创建账单时,会将值写入文本文件。但是,输出没有正确对齐,有没有办法将具有固定参数的模板指定为每行的位置?
这是一个最小的程序:
执行此程序时,输出将写入相对路径中的记事本文件“bill.txt”。文件中的数据如下:
乍一看,输出看起来很整洁,但仔细一看,并没有定义对齐方式。这是我想要的输出,所有小数都应该在一列中:
我为此查看了很多教程,但在 Tkinter 框架中一无所获。我需要探索的唯一选择是首先将所有这些数据写入画布并对齐它们,然后打印画布本身而不是这个文本文件。
对最快的前进方式有任何帮助吗?如果画布是我唯一的选择,请提供使用画布完成这项工作的最简单方法的示例/指针。
python - Tkinter Python 3 create_rectangle 参数 - relheight,relwidth,relx,rely
我制作了一个 UI,并使用了 relheight、relwidth、relx、rely 作为我所有标签的参数,例如:
但是为了创建矩形,我使用的是:
我尝试对 create_retangle 使用 rel 参数,但它给出了一个错误,那么是否可以使用相对参数创建带边框和 bg 填充的矩形?这是因为我希望我的 UI 在最大化时自动对齐。
tkinter - 我想在框架 f1b 中添加输入框,然后将其放置在画布 c1 上(抱歉无法在 postb 下嵌入图像
我想在框架 f1b 中添加输入框,这又是画布 c1 上的位置。当我直接将条目添加到框架 f1b 时,框架不可见。还是应该使用 create_window 将它们添加到画布?有人可以在这里帮助我吗..
![] ( https://i.stack.imgur.com/xBPEu.png )
我尝试使用以下代码添加条目:
e1 = 入口(f1b,宽度=10)
e1.grid(行=3,列=4,padx=10,pady=10)
更新:![图像更新][ https://i.stack.imgur.com/EZ44D.png]
python - 使 Tkinter 多个窗口在任务栏中有一个图标
我使用了 Tkinter ,有几个 Toplevels,它们在 Ubuntu 任务栏中单独显示,而不是像打开多个 firefox 窗口那样在一起(我的意思是它们都在 firefox 图标下组合在一起,可以从中选择所需的)。所有 tkinter 窗口都单独出现在任务栏中,因此占用了很多空间。有没有办法将它们组合在一起,以便轻松查看当前打开了多少个窗口并清楚地看到它们是其中的一部分一个程序
python-3.x - Tkinter - 如何使小部件居中(Python)
我从 Python 中的 GUI 开始,但遇到了问题。我已经在我的框架中添加了小部件,但它们总是在左侧。我尝试了一些来自互联网的示例,但我没有管理它。我试过.place
了,但它对我不起作用。有人能告诉我如何将小部件放在中间吗?
代码:
python - Tkinter 网格不能放置在屏幕死点以外的任何地方
所以我只需要一张照片作为背景,然后在某个位置有一个按钮。我已经加载了背景图像,但是现在当我尝试放置按钮时,它只会直接进入屏幕中心。如果我将列或行设为 0 以外的任何值,则该按钮会离开屏幕。
full 变量仅用于用户是否想要全屏,我不希望它调整为任何特定大小,只是全屏或半屏。但这无关紧要。
![看起来像什么]:https ://ibb.co/cycTFT
编辑:好的,所以我发现了一些新东西,问题是带有背景图像的画布被设为单元格的默认大小。因此,如果我让它越过第 0 行和第 0 列,它就会离开屏幕进入另一个单元格。如果我将其设为 row=0 且 column=1,这就是按钮所在的位置。
![行=0 和列=1]:https ://ibb.co/jWt2aT
所以我需要在保持图像大小的同时使单元格变小,这意味着我需要以某种方式使其占据多个单元格。我仍然不知道如何做到这一点......但进步不减。
tkinter - 添加标签时列表框调整大小:tkinter
我正在制作一个 GUI,.grid()
因为它有很多按钮。我已将它们放在Frame
屏幕顶部的交互式 ( frameone
) 中,并且frametwo
在底部我想根据用户按下的按钮打印出消息。就上下文而言,这是一款战舰游戏。但是当我制作frametwo
并放入其中listbox
时,列表框会调整大小以适合里面的文本。我不想每次label
输入更多 s 时都必须调整窗口大小。这是一个工作示例:
如果这是一个重复的问题或以某种方式超级明显,我很抱歉。另外,对不起,我的 GUI 很糟糕……我不明白为什么这种方法不起作用。在寻找解决方案时,我发现的只是一些非常好的解释.grid
以及如何在列表没有调整大小时调整大小。一切都有帮助,谢谢。