我正在移植一个程序(VMD,视觉分子动力学),它是用C++编写的,嵌入了Python和TCL解释器,到Python3.x。它的大部分UI都是使用TCL/TK框架和OpenGl硬编码的,所以UI刷新是手动完成的。当Python解释器运行时,可以使用Tkinter动态创建新窗口,甚至向主UI添加新菜单。在这种情况下,通过周期性地调用Python端的一些代码来刷新所有TK事件(见下文)。这确保了所有的更新都是线程安全的,并且不会破坏解释器。
int PythonTextInterp::doTkUpdate() {
// Don't recursively call into doon
这些是我的模型(简化):
public User()
{
Friends = new HashSet<User>();
Subscriptions = new HashSet<Subscription>();
Tasks = new HashSet<Task>();
Invitations = new HashSet<Invitation>();
Events = new HashSet<Event>();
}
public Guid UserId {
为了使用tkinter菜单和按钮,我一直在努力创建一些代码,以便在tkinter窗口中嵌入pygame窗口。我目前有一些问题,处理关键的出版社。我希望所有的按键都是由吡咯烷酮处理,而不是tkinter,这样,如果pygame元素是全屏的(因此不使用tkinter ),那么tkinter键绑定就会被忽略。
我的问题是,当窗口最初打开时(或者在它被关闭或重新单击之后),只有tkinter正在注册键绑定。一旦用户点击了吡咯窗口,只有吡咯注册键绑定。我的问题是,如何检测tkinter或pygame是否检测到键按,以及如何使吡咯烷酮检测到按键,而不是当我检测到按键时?
我的代码在下面(抱歉太长了)
im
我正在创建一个简单的tkinter列表,并用数字列表填充它。然后,我删除了列表的一部分,并希望在我运行delete函数时,该更改立即反映在列表框中。
我在函数中使用了update_idletasks(),但它不会更新列表。有人能帮我解决这个问题吗?
from tkinter import *
main = Tk()
b1 = Button(main,text='delete section',command=lambda:func())
b1.pack()
l1 = Listbox(main)
l1.pack()
mylist =[]
for i in range(
基本上,我已经为我的游戏创建了一个pygame菜单,当我单击它们时,它将加载所有其他pygame窗口,但是对于某些方面,如添加用户等,我是在Tkinter GUI中创建的。当我点击将它们加载到我的pygame上时,它不会加载Tkinter GUI,有谁知道我如何解决这个问题,或者我是否需要添加一些东西来使其工作。
它的行为就像它要加载一些东西,但是没有,第一个叫做"mathsvaders“的程序加载得很好,因为它是一个pygame程序,但是最高分在tkinter中,没有加载:
pos = 1
while True:
# events
for e in pygame.event.get(
我正试着用tkinter创建一个国际象棋游戏。我在python编程方面没有很大的经验,但我觉得tkinter的哲学有点奇怪:如果我的假设是正确的,那么在我看来,使用tkinter意味着将其设置为项目的基,所有的事情都必须围绕它工作。我的意思是,使用tkinter框架中没有“包装”的任何代码都是很痛苦的(有使用事件系统,有来使用after方法,如果您想在启动主循环之后执行操作,等等)。
我对此有着完全不同的看法,在我的国际象棋项目中,我只是将tkinter显示作为我的呈现系统的一部分,而tkinter提供的事件系统是 my 输入解析器系统的一部分。尽管如此,我希望能够轻松地更改渲染器或输入解析器
Tkinter方法“去图标化”似乎不适用于ubuntu(12.04,统一),但是下面的代码在windows 7上可以正常工作。我需要显示窗口,即使在另一个项目中发生了一些事情时,它也被最小化了。
from time import sleep
from Tkinter import Tk
class GUI():
def __init__(self):
self.root = Tk()
self.root.title("Test")
self.root.protocol("WM_DELETE_WINDOW"