小编Cli*_*ock的帖子

Python Tkinter 级联菜单命令不执行

我有一个问题,我正在尝试解决该问题,并使用下面的代码重现了该问题。

我遇到的问题是,我可以从主菜单项获取指定的命令,但是当级联菜单中包含相同的命令时,它似乎不会执行。

我不确定这是否与我的要求有关,我需要渲染按钮网格并为每个按钮附加一个上下文菜单。这是我设计的一些代码来演示这个问题:

import tkinter as tk

class App(tk.Tk):
    def __init__(self):
        super().__init__()

        self.title('Tkinter Validation Demo')

        self.create_widgets()

    @staticmethod
    def print_bg_color(button, button_id):
        colour = button.cget('bg')
        print(f'Button {button_id} colour is {colour}')

    @staticmethod
    def _context_menu(event: tk.Event = None, menu: tk.Menu = None):
        menu.tk_popup(event.x_root, event.y_root)

    def create_widgets(self):
        colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
        for i in range(0, 7):
            button = tk.Button(master=self, bg=colors[i], width=10, height=10)
            button.grid(row=0, column=i)
            context_menu = tk.Menu(button, tearoff=False)
            # Add print option to main menu
            context_menu.add_command(label="Print colour",
                                     command=lambda btn=button, button_id=i: …
Run Code Online (Sandbox Code Playgroud)

python command cascade menu tkinter

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

Python:确定 SQL 选择列表中的 Oracle 数据库列数据类型

如何使用 Oracle 和 Python 中的 cx_Oracle 模块确定选择列表中列的列数据类型。本质上是一种光标内省。

我见过需要根据表名查询 Oracle 数据字典的解决方案。但是,如果您需要编写动态执行 SQL 的代码,例如存储在文件中的 SQL,它连接两个或多个表,事情就会变得棘手。此方法允许您询问游标以及选择列表中的任何给定列,无论它源自哪个表或视图,从而确定该列的数据类型。

cx-oracle sqldatatypes python-3.x

-1
推荐指数
1
解决办法
3787
查看次数

标签 统计

cascade ×1

command ×1

cx-oracle ×1

menu ×1

python ×1

python-3.x ×1

sqldatatypes ×1

tkinter ×1