如何在没有tkinter中心窗口小部件的情况下向tkinter窗口添加填充?我试过了:
self.canvas_l = Label(self.master, text="choose a color:", font="helvetica 12")
self.canvas_l.grid(row=9, column=1, sticky=S, ipady=30)
Run Code Online (Sandbox Code Playgroud)
和
self.canvas_l = Label(self.master, text="choose a color:", font="helvetica 12")
self.canvas_l.grid(row=9, column=1, rowspan=2, sticky=S, pady=30)
Run Code Online (Sandbox Code Playgroud)
我只想在标签的顶部添加30px填充.
我需要将我的python应用程序,它的依赖项和python打包到一个MSI安装程序中.最终结果应该是:
如何让Tkinter应用程序跳到前面?目前,窗口出现在我所有其他窗口后面,并没有得到焦点.
我应该打电话给我一些方法吗?
直到现在,我曾经用以下结束我的Tkiter程序:tk.mainloop()或者什么都不会出现!见例子:
from Tkinter import *
import random
import time
tk = Tk()
tk.title = "Game"
tk.resizable(0,0)
tk.wm_attributes("-topmost", 1)
canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)
canvas.pack()
class Ball:
def __init__(self, canvas, color):
self.canvas = canvas
self.id = canvas.create_oval(10, 10, 25, 25, fill=color)
self.canvas.move(self.id, 245, 100)
def draw(self):
pass
ball = Ball(canvas, "red")
tk.mainloop()
Run Code Online (Sandbox Code Playgroud)
然而,当尝试下这个程序的下一步(让球随时间移动)时,本书正在阅读,说要做到以下几点.将绘图功能更改为:
def draw(self):
self.canvas.move(self.id, 0, -1)
Run Code Online (Sandbox Code Playgroud)
并将以下代码添加到我的程序:
while 1:
ball.draw()
tk.update_idletasks()
tk.update()
time.sleep(0.01)
Run Code Online (Sandbox Code Playgroud)
但我注意到添加这段代码,使用tk.mainloop()无用,因为即使没有它,一切都会出现!
在这一刻,我应该提到我的书从未谈到tk.mainloop()(也许是因为它使用Python 3)但我学会了它在网上搜索,因为我的程序不能通过复制书的代码工作!
所以我尝试做以下不起作用!
while 1:
ball.draw()
tk.mainloop() …Run Code Online (Sandbox Code Playgroud) 有没有人知道一个GUI设计应用程序,它允许您选择/拖放小部件,然后使用grid几何管理器使用适当的Tkinter调用和排列将该布局转换为Python代码?到目前为止,我已经找到了一些我可能最终使用的相当不错的选项,但是它们使用pack或place代替生成代码.
在您说出来之前:是的,我知道Tkinter很容易学习,是的,我找到了多个在线资源来帮助我这样做,而且我已经开始了.这不是关于避免学习的努力,而是关于使用正确的工具来完成工作.我很久以前就发现那些用于编码程序逻辑的拖放小部件环境,当项目超出一定的大小时,它们太笨拙且无法管理 - 对于更大的东西,它更容易构建和维护逻辑当它是纯文本.最近我发现设计GUI的反面也是如此.编写文本可以达到某种程度,但是当你有一个包含30或40个小部件的主窗口,再加上几个具有相似复杂性的侧窗时,如果你可以用图形方式设计它而不是全部输入它,它会更快更容易.
我试图将一个tkinter窗口居中.我知道我可以编程方式获取窗口的大小和屏幕并用它来设置几何图形的大小,但我不知道是否有到中心屏幕上的窗口,更简单的方法.
我正在学习Python,我想用它来创建一个简单的GUI应用程序,因为Tkinter它已经内置(并且使用起来非常简单),我想用它来构建我的应用程序.
我想创建一个应用程序,它将显示一个表,其中包含我从数据库加载的一些数据.
我搜索过table但无法找到有关Tkinter table组件的任何示例和/或文档.
是否Tkinter有一个内置的table组件?如果没有,我可以/我应该使用什么呢?
如何根据屏幕尺寸告诉Tkinter窗口在哪里打开?我希望它在中间打开.
正如问题所说的那样.Text小部件有<<Modified>>事件,但Entry小部件似乎没有.
当我尝试使用下面的代码将丑陋的红色"TK"左上角的窗口图标更改为我自己的图标时,Python发出错误:
from tkinter import *
root = Tk()
#some buttons, widgets, a lot of stuff
root.iconbitmap('favicon.ico')
Run Code Online (Sandbox Code Playgroud)
这应该将图标设置为'favicon.ico'(根据网络上的很多论坛帖子).但不幸的是,所有这一行都抛出以下错误:
Traceback (most recent call last):
File "d:\ladvclient\mainapp.py", line 85, in <module>
root.iconbitmap(bitmap='favicon.ico')
File "C:\Python33\lib\tkinter\__init__.py", line 1637, in wm_iconbitmap
return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "favicon.ico" not defined
Run Code Online (Sandbox Code Playgroud)
我已经做了什么:
.png或.bmp没有工作而对于第三点,我最喜欢的关于Tkinter的网站effbot.org告诉我,Windows忽略了这个iconbitmap功能.但这并不能解释为什么会抛出错误!
有一些"hackish"方法可以避免这个问题,但没有一个是为Python 3.x编写的.
所以我的最后一个问题是:有没有办法使用Python 3.x和Tkinter获取自定义图标?
另外,不要告诉我应该使用另一个GUI库.我希望我的程序能够在每个平台上运行.我也想要一个编码版本,而不是一个py2exe或sth解决方案.
python ×10
tkinter ×10
centering ×1
focus ×1
grid ×1
packaging ×1
padding ×1
python-2.7 ×1
python-3.x ×1
windows-7 ×1