[PYTHON] Erstellen wir eine Funktion, um die Schaltfläche in Tkinter gedrückt zu halten

Ich habe vor kurzem angefangen, Tkinter zu verwenden, also ist es vielleicht einfach Egal wo ich hinschaute, ich konnte nicht die Möglichkeit finden, den Knopf gedrückt zu halten und ihn zu verriegeln. Wenn jemand weiß, wie es geht, kannst du es mir sagen?

Ich konnte keinen Weg finden, es zu tun, also versuchte ich es zu erzwingen. Es ist ein ziemlich böser Weg, daher ist er vielleicht nicht hilfreich, aber ich werde ihn unten auflisten.

Was willst du tun

Ich möchte eine GUI erstellen, die 8-Bit-Binärdateien mithilfe von Schaltflächen bearbeitet.

Problem

Kann ich nicht weiter mit dem Tkinter-Knopf drücken? Schaltfläche kann deaktiviert werden. Die Tastenbezeichnung (Bild auf der Oberfläche) kann geändert werden Aber kann die Knopfentlastung nicht geändert werden?

Lösung und Ergebnis der Herstellung

PushButton.png

Ich habe die generierte Schaltfläche verworfen und versucht, alles mit Erleichterung neu zu erstellen, als es erneut gedrückt wurde.

BinEditor.py


import sys
import tkinter as tk

class BinEditFrame(tk.Frame):
    def __init__(self, master):
        super().__init__(master)
        self.val = 0x00
        self.bits = []
        for i in range(8):
            btn = tk.Button(self,text=str(i), relief='raised', command=self.callback(i))
            btn.pack(sid='right')
            self.bits.append(btn)
        print("start")

    def callback(self, i):
        def push():
            self.val ^= (1<<i)
            print(self.val)

            #All Button Delete
            for bit in self.bits:
                bit.destroy()
            self.bits.clear()

            #All Button ReCreate
            for j in range(8):
                if (self.val & (1<<j) > 0):
                    btn = tk.Button(self,text=str(j), relief='sunken',
                                    command=self.callback(j) )
                else:
                    btn = tk.Button(self,text=str(j), relief='raised',
                                    command=self.callback(j) )
                btn.pack(sid='right')
                self.bits.append(btn)
        return push
        

if __name__ == "__main__":
    print("BinEditor")
    win = tk.Tk()
    be = BinEditFrame(win)
    be.pack()
    win.mainloop()





Recommended Posts

Erstellen wir eine Funktion, um die Schaltfläche in Tkinter gedrückt zu halten
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
So erstellen Sie ein Funktionsobjekt aus einer Zeichenfolge
Ich möchte mit Python ein Fenster erstellen
So erstellen Sie eine JSON-Datei in Python
So erstellen Sie eine Rest-API in Django
Wie man eine öffentliche Funktion in Pytest verspottet
Versuchen Sie, mit Tkinter in Python dynamisch einen Checkbutton zu erstellen
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Erstellen Sie ein Plug-In, das Python Doctest auf Vim ausführt (2)
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
Erstellen wir eine Funktion für den parametrisierten Test mithilfe eines Rahmenobjekts
Covector, um in Funktion zu denken
Erstellen Sie eine Funktion zum Anzeigen von Bildern wie Jupyter / RStudio [Docker]
Erstellen Sie ein Wörterbuch in Python
Erstellen Sie einen Mastodon-Bot mit einer Funktion, die automatisch mit Python antwortet
So rufen Sie eine Funktion auf
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Praktische Funktion zum Hinzufügen von Spalten an einer beliebigen Stelle in Pandas DataFrame
Versuchen Sie, eine logistische Funktion zu zeichnen
So geben Sie char * in einer Rückruffunktion mit ctypes in Python zurück
Aktivieren Sie die Schaltfläche Überprüfen in Tkinter, damit der Eintrag bearbeitet werden kann
So ändern Sie die Farbe nur der mit Tkinter gedrückten Taste
Ich habe eine Funktion zum Laden des Git-Erweiterungsskripts in Python geschrieben
Erstellen Sie eine Benutzerauthentifizierungsfunktion in Airflow
Erstellen Sie mit Flask einen CSV-Reader
Erstellen Sie mit tkinter eine Python-GUI
Erstellen Sie einen DI-Container mit Python
Schritte zum Erstellen eines Django-Projekts
Implementieren Sie einen Datumssetzer in Tkinter
So erstellen Sie ein Conda-Paket
Erstellen Sie eine Binärdatei in Python
So erstellen Sie eine rekursive Funktion
Wie erstelle ich eine Docker-Datei?
5 Möglichkeiten zum Erstellen eines Python-Chatbots
Erstellen Sie eine zufällige Zeichenfolge in Python
So erstellen Sie eine Konfigurationsdatei
Erstellen Sie mit Django einen LINE-Bot
Erstellen Sie Verknüpfungen, um Python-Dateien auf dem Terminal mit VScode auszuführen
Erstellen wir eine Chat-Funktion mit Vue.js + AWS Lambda + Dynamo DB [AWS-Einstellungen]
Verschiedene Methoden zum numerischen Erstellen der Umkehrfunktion einer bestimmten Funktion Einführung
[Python / Tkinter] Suche nach Pandas DataFrame → Erstellen Sie ein einfaches Suchformular zur Anzeige
Erstellen Sie einen Befehl zum Löschen aller temporären Dateien, die in einem bestimmten Ordner generiert wurden
So erstellen Sie einen Wrapper, der die Signatur der zu umschließenden Funktion beibehält
Erstellen wir eine Kundendatenbank, in der QR-Code automatisch in Python ausgegeben wird
[Python] [Word] [python-docx] Versuchen Sie, mit python-docx eine Vorlage für einen Wortsatz in Python zu erstellen
Ich habe versucht, einen Linebot zu erstellen (Implementierung)
So erstellen Sie einen Klon aus Github
Erstellen Sie mit Class einen Python-Funktionsdekorator
Erstellen Sie einen Bot, um Corona-Virus-Informationen zu retweeten
So erstellen Sie einen Git-Klonordner
Ich möchte in der Einschlussnotation drucken
Ich habe versucht, einen Linebot zu erstellen (Vorbereitung)
Vorsichtsmaßnahmen beim Beizen einer Funktion in Python