Search on blog:

Tkinter: how to use pynput keyboard listener together with tkinter GUI

In documentation you can see example for pynput Monitoring The keyboard

with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

which blocks code but you can put code between lines

with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:

    # ... your code ...

    listener.join()

or you can run it …

Tkinter Przykład: użycie Checkbutton do uruchomienia i zatrzymania timera

Gdy zaznaczysz Checkbutton wtedy timer zostanie uruchomiony (bez wyświetlania czasu).

Gdy oznaczysz Checkbutton wtedy timer zostanie zatrzymany i wyświetlony czas zsumowany z porzedmini czasmi.

import tkinter as tk
import time

# --- functions ---

def func():
    global total
    global time_start

    if cb_var.get():
        time_start = time.time()
    else:
        total += (time.time() - time_start)
        label['text …

Tkinter Przykład: użycie wielu Checkbutton wraz z IntVar lub StringVar

Przykład wykorzystuje słownik (dictionary) do przechowywania wielu IntVar, które są przypisane do Checkbutton

import tkinter as tk

# --- functions ---

def confirm():
    for key, item in all_int_vars.items():
        if item.get() == 1:
            print(key)

# --- main ---

items = ['pizza', 'breadsticks', 'wings', 'CocaCola', 'brownie'] 

root = tk.Tk()

all_int_vars = {item:tk.IntVar() for item in items …

Tkinter: Jak użyć pynput keyboard listener razem z GUI tkinter

W dokumentacji można zobaczyć przykład dla Monitoring the keyboard

with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

który blokuje kod więc nie może pracować razem z tkinter. Ale kod można wstawić między linie

with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:

    # ... your code ...

    listener.join()

lub …

tekst [PL]

import tkinter as tk

def select(event):
    widget = root.winfo_containing(event.x_root, event.y_root)
    if widget and hasattr(widget, 'selectable'):
        widget['bg'] = 'red'

root = tk.Tk()

for i in range(9):
    for e in range(9):
        b = tk.Button(root, text="X")
        b.selectable = True
        b.grid(row=e, column …

Tkinter: Użycie after() do wyświetlania czasu

Używajac

root.after(milliseconds, callback)

można uruchomić funkcję z opoźnieniem.

Można to wykorzystać do wyświetlannia aktualnego czasu

import tkinter as tk
import time

# --- function ---

def update_timer():
    timer['text'] = time.strftime('%H:%M:%S')
    root.after(1000, update_timer) # run again after 1000ms = 1s

# --- main ---

root = tk.Tk()

timer = tk.Label(root …

Użycie strzałki w dół aby przeskoczyć z ostatniego do pierwszego wiersza w Treeview

Kod używa bind() aby wywołać funkcję gdy zostaje wciśnieta strzałka w dół Down w Treeview.

Funkcja sprawdza czy jesteśmy w ostatnim wierszu

last = tree.get_children()[-1]
if tree.focus() == last:

i przenosi fokus oraz selekcje do pierwszego wiersza, oraz przewija okno do tego wiersza. Wysyła także napis "break" aby Treeview …

« Page: 2 / 3 »