Jak wyeliminować przesunięcie wciśniętego przycisku po wywołaniu?

0

Po naciśnięciu prawego przycisku myszki i wywołaniu polecenia copy następuje takie mignięcie tego przycisku wyżej niż było wywołanie na elemencie.
Możliwe, że jest to wada tego widgetu, a ja sam nie wiem co z tym zrobić bo to dziwnie wygląda.

import tkinter as tk
from tkinter import ttk

class App:
    def __init__(self, root):
        self.root = root
        self.setup_ui()

    def setup_ui(self):
        self.tree = ttk.Treeview(self.root, columns=("name", "age"))
        self.tree.heading("#0", text="ID")
        self.tree.heading("name", text="Name")
        self.tree.heading("age", text="Age")

        # Dodaj losowe wpisy do Treeview
        for i in range(1, 11):
            self.tree.insert("", "end", text=str(i), values=(f"Name {i}", 20 + i))

        self.tree.pack()
        
        self.tree.bind("<Button-3>", self.popup)

        self.popup_menu = tk.Menu(self.root, tearoff=0)
        self.popup_menu.add_command(label="Copy", command=self.copy_to_clipboard)

    def popup(self, event):
        self.popup_menu.tk_popup(event.x_root, event.y_root)

    def copy_to_clipboard(self):
        selected_item = self.tree.selection()[0]
        values = self.tree.item(selected_item)['values']
        if values:
            row_text = "\t".join(map(str, values))
            self.root.clipboard_clear()
            self.root.clipboard_append(row_text)

root = tk.Tk()
app = App(root)
root.mainloop()

1

O co Ci chodzi?
Że menu kontekstowe pokazuje się gdziekolwiek? A nie tylko na zaznaczonym elemencie?

Znalazłem kod, który oprócz menu kontekstowego zaznacza element pod myszką: https://stackoverflow.com/a/25217053

0

Naciskasz przycisk i on znika, ale w ułamku sekundy przenosi się wyżej i niknie. To zniknięcie nie następuje w miejscu nacisnięcia po wywołaniu tylko magicznie niknie np 100 pikseli nad wywołaniem,

1

screenshot-20240311172112.jpg
Python 3.12.0 (tags/v3.12.0:0fb18b0, Oct 2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)] on win32

0

Faktycznie u ciebie tego efektu nie ma. U mnie na PyCharmie jest mignięcie tego zamykanego przycisku.
Po kompilacji do exe również jest. Nie mnie to oceniać, ale może to zależne od wersji Pythona czy nawet od OS. Python 3.8.9 i Win7 64
Dzięki za poświęcony czas.

1 użytkowników online, w tym zalogowanych: 0, gości: 1