使用element.bind更改Tkinter对象的窗口大小

时间:2017-08-23 23:35:13

标签: python user-interface tkinter window

当初始化tkinter gui元素时,我们的gui被放置在具有自己的标题,图标和许多其他有趣内容的特定窗口中。

我正在创建一些需要使用特定图形界面实现控制台功能的gui程序。使用语音激活命令编程普通工作,因此当用户按下按钮时静音/聋控制台将实现,以便用户可以与程序通信。

因此,只有当用户按下键盘上的键时才能看到控制台,并且通过实现控制台窗口大小必须更改以补偿控制台空间,因为窗口是固定大小且不可调整大小。

所以我们假设我们有一些tkinter对象:

from __future__ import absolute_import, division, print_function, unicode_literals,with_statement

vStr = lambda x: type(x).__name__ in 'unicode,str'

try:
    from Tkinter import Tk
except ImportError:
    from tkinter import Tk

class wind(object):

    def __init__(self):
        self._ = Tk()
        self._.title('programm')
        self._.geometry('300x400+1+1')

        self._.bind('<space>', self.change_size)
        self.change = False

    def change_size(self,event):
        #some code here

    def init(self):
        self._.mainloop()

app = wind()
app.init() 

如何在事件上更改窗口self._根对象的大小。

1 个答案:

答案 0 :(得分:0)

绑定背后的功能:

from __future__ import absolute_import, division, print_function, unicode_literals,with_statement

vStr = lambda x: type(x).__name__ in 'unicode,str'

try:
    from Tkinter import Tk
except ImportError:
    from tkinter import Tk

class wind(object):

    def __init__(self):
        self._ = Tk()
        self._.title('programm')
        self._.geometry('300x400+1+1')

        self._.bind('<space>', self.change_size)
        self.change = False

    def change_size(self,event):
        if self.change:
            self._.geometry('200x500+3+3')
        else:
            self._.geometry('300x400+1+1')

        self.change = not self.change

    def init(self):
        self._.mainloop()

app = wind()
app.init()  

在py2.7和py3.5上的Windows上运行