- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Tkinter 中知道 "<Configure>"
事件处理窗口中的大小更改。但是,我需要区分用户何时点击最大化按钮、恢复按钮以及用户何时调整窗口大小(而不是同时调整所有三个按钮)。关于如何做到这一点有什么想法吗?有标准的方法吗?例如,当用户点击最大化时,我想执行我的代码以最大化。当用户点击恢复时,我想执行不同的代码来恢复。当用户拖动以调整大小(或使用键盘快捷键来执行此操作)时,我希望它完全执行不同的代码。
最佳答案
我想不出跟踪这些事件的内置方法,但您可以使用 state()
根窗口上的方法来跟踪更改。可以查看state()
的返回值,具体来说normal
和zoomed
(看起来仅限于 Windows 和 OSX),并调用您自己的方法来根据这些值处理调整大小类型。下面是一个示例来说明:
class App(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
# initialize the new_state
self.new_state = 'normal'
self.parent.bind('<Configure>', self._resize_handler)
def _resize_handler(self, event):
self.old_state = self.new_state # assign the old state value
self.new_state = self.parent.state() # get the new state value
if self.new_state == 'zoomed':
print('maximize event')
elif self.new_state == 'normal' and self.old_state == 'zoomed':
print('restore event')
else:
print('dragged resize event')
root = Tk()
App(root).pack()
root.mainloop()
如果你想区分拖动窗口和拖动来调整大小,你必须添加一些额外的检查,也许将大小存储在 <Configure>
之前以及之后的尺寸,带有 winfo_height()
和winfo_width()
,如果没有发生任何变化,您就知道窗口只是重新定位了。
希望有帮助。
关于python - Tkinter 最大化/恢复/调整差异化大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24270149/
我创建了一个导航栏,效果很好。唯一的问题是,我创建了一个链接,但看不到链接的一半。 谁能帮帮我??? HTML:
我有一个 Device 对象数组,它是使用 $resource 从 REST 服务器定期获取的。每当发生这种情况时,UI 就会“重新加载”,这意味着该设备数组的 ng-repeat 会再次执行。 DO
我是一名优秀的程序员,十分优秀!