小编jak*_*kun的帖子

如何在 python tkinter 中以编程方式打开菜单?

我有一个带有菜单栏的图形用户界面。我希望能够以编程方式打开这些菜单,就像用户点击它们一样。

我的第一个猜测是,invoke但这没有明显的效果。我知道我可以使用打开菜单,tk_popup但我无法弄清楚坐标。该yposition函数的返回值看起来没有帮助。奇怪的是,我什至无法获得菜单栏的宽度 - 它始终为 1。

我知道我可以将一个菜单按钮绑定到一个关键事件,underline并且我可能会以编程方式创建这样一个事件,但我真的不想这样做。

import Tkinter as tk

class MenuBar(tk.Menu):
     def __init__(self, root):
         tk.Menu.__init__(self, root)
         self.root = root
         self.menu_file = tk.Menu(m, tearoff=False)
         self.menu_file.label = 'File'
         self.menu_file.add_command(label='save')
         self.menu_file.add_command(label='open')

         self.menu_edit = tk.Menu(m, tearoff=False)
         self.menu_edit.label = 'Edit'
         self.menu_edit.add_command(label='add')
         self.menu_edit.add_command(label='remove')

         self.menus = (
             self.menu_file,
             self.menu_edit,
         )
         for menu in self.menus:
             self.add_cascade(label=menu.label, menu=menu, underline=0)

     def invoke(self, menu):
         if menu in self.menus:
             index = self.index(menu.label)
         else:
             index = menu
         print("invoke({!r})".format(index))
         tk.Menu.invoke(self, index)

     def open_menu(self, menu):
         x …
Run Code Online (Sandbox Code Playgroud)

python tkinter

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

mypy:如何在泛型类中声明返回 self 的方法的返回类型?

这个答案似乎不适用于泛型。在检查以下代码时,Mypy 抱怨“错误:缺少泛型类型 A 的类型参数”。我尝试使用'A[T]'TypeVar 但 mypy 说“错误:类型变量 T 未绑定。” 我还尝试使用AnyA[T]作为返回类型,get但会产生两个错误消息,即已知的“错误:缺少泛型类型 A 的类型参数”和新的错误消息“与参数一起使用的类型变量 AnyA”。

如何正确指定返回类型get

import typing

T = typing.TypeVar('T')
AnyA = typing.TypeVar('AnyA', bound='A')

class A(typing.Generic[T]):

    def __init__(self, val: T) -> None:
        self.val = val

    def get(self: AnyA) -> AnyA:
        return self

class B(A[T]):
    def is_int(self) -> bool:
        return isinstance(self.val, int)


if __name__ == '__main__':
    b = B(42)
    print(b.get().is_int())
Run Code Online (Sandbox Code Playgroud)

generics mypy python-typing

5
推荐指数
1
解决办法
2899
查看次数

标签 统计

generics ×1

mypy ×1

python ×1

python-typing ×1

tkinter ×1