相关疑难解决方法(0)

你如何在Tkinter的事件循环中运行自己的代码?

我的小弟弟正在进入编程,而在他的科学博览会项目中,他正在模拟天空中的一群鸟.他已经完成了大部分代码编写工作,并且工作得很好,但是鸟类需要每时每刻都在移动.

然而,Tkinter占用了自己的事件循环的时间,所以他的代码不会运行.做root.mainloop()运行,运行和继续运行,它运行的唯一事情是事件处理程序.

有没有办法让他的代码与mainloop一起运行(没有多线程,这很混乱,这应该保持简单),如果是这样,它是什么?

现在,他想出了一个丑陋的黑客,把他的move()功能绑在一起<b1-motion>,所以只要他按住按钮并摆动鼠标,就可以了.但必须有一个更好的方法.

python events tkinter

110
推荐指数
4
解决办法
13万
查看次数

Tkinter,Windows:如何查看没有标题栏的Windows任务栏中的窗口?

我创建了一个窗口:

root = Tk()
Run Code Online (Sandbox Code Playgroud)

并删除标题栏:

root.overrideredirect(True)
Run Code Online (Sandbox Code Playgroud)

现在窗口不在Windows的任务栏上.如何在任务栏中显示它?(如果其他窗户在我的上面,我只想把窗户拉到前面)

python windows tkinter python-3.4

6
推荐指数
1
解决办法
1690
查看次数

创建一个没有X(关闭)按钮的python tkinter窗口

我正在编写一个'向导'类型的Python Tkinter GUI,它从用户收集信息,然后根据用户的条目执行多个操作:文件复制,数据库更新等.处理通常需要30-60秒,在此期间,我想要:

  1. 为用户提供有关活动和进度的文本更新
  2. 阻止用户关闭应用程序,直到它完成它正在做的事情

我开始将文本更新显示在子窗口中,该子窗口被配置为trainsientwait_window用于暂停主循环直到活动完成.这适用于我创建的其他自定义对话框,它们具有调用窗口destroy方法的OK/cancel按钮.基本方法是:

def myCustomDialog(parent,*args):
    winCDLG = _cdlgWin(parent,*args)
    winCDLG.showWin()
    winCDLG.dlgWin.focus_set()
    winCDLG.dlgWin.grab_set()
    winCDLG.dlgWin.transient(parent)
    winCDLG.dlgWin.wait_window(winCDLG.dlgWin)
    return winCDLG.userResponse

class _cdlgWin():
    def __init__(self,parent,*args):
        self.parent = parent
        self.dlgWin = tk.Toplevel()
        self.userResponse = ''

    def showWin(self):
        #Tkinter widgets and geometry defined here

    def _btnOKClick(self):
        #self.userResponse assigned from user entry/entries on dialog
        self.dlgWin.destroy()

    def _btnCancelClick(self):
        self.dlgWin.destroy()
Run Code Online (Sandbox Code Playgroud)

但是,这种方法不适用于我想要创建的新监视器和更新对话框.

首先,因为没有用户启动的操作来触发复制/更新活动然后destroy,我必须将它们放在showWin或其他方法中.我已经尝试了两种方式但是我遇到了竞争条件(代码完成了复制/更新的东西,但之后尝试在它之前销毁窗口),并且从不执​​行复制/更新的东西,因为它点击wait_window之前我可以激活其他方法.

如果我能找到一种方法,那么次要问题(防止用户在工作完成之前关闭子窗口)将在下面的答案中介绍.

那么......有什么样的绑带可以申请让这种方法按我想要的方式工作吗?或者我需要废弃它,因为它无法正常工作?(如果是后者,有什么方法可以实现最初的目标吗?)

python windows tkinter windows-7 python-2.7

0
推荐指数
1
解决办法
8820
查看次数

标签 统计

python ×3

tkinter ×3

windows ×2

events ×1

python-2.7 ×1

python-3.4 ×1

windows-7 ×1