[PYTHON] Créons une fonction pour maintenir Button dans Tkinter

Je viens de commencer à utiliser Tkinter récemment, alors peut-être que c'est facile à faire Je n'ai pas trouvé la fonction pour maintenir le bouton enfoncé et le réparer, peu importe où je regardais. Si quelqu'un sait comment le faire, pouvez-vous me le dire?

Je n'ai pas trouvé de moyen de le faire, alors j'ai essayé de le forcer. C'est une manière assez méchante, donc cela peut ne pas être utile, mais je vais la lister ci-dessous.

Que veux-tu faire

Je souhaite créer une interface graphique qui modifie les binaires 8 bits à l'aide de boutons.

problème

Est-ce que je ne peux pas continuer à pousser avec le bouton Tkinter? Le bouton peut être désactivé. L'étiquette du bouton (image sur la surface) peut être modifiée Mais le relief du bouton ne peut-il pas être modifié?

Solution et résultat de la fabrication

PushButton.png

J'ai jeté le bouton généré et j'ai essayé de tout recréer avec soulagement en appuyant à nouveau.

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

Créons une fonction pour maintenir Button dans Tkinter
Créez une fonction pour obtenir le contenu de la base de données dans Go
Comment créer un objet fonction à partir d'une chaîne
Je veux créer une fenêtre avec Python
Comment créer un fichier JSON en Python
Comment créer une API Rest dans Django
Comment se moquer d'une fonction publique dans Pytest
Essayez de créer un Checkbutton dynamiquement avec Tkinter en Python
Je veux écrire en Python! (2) Écrivons un test
Créer un plugin pour exécuter Python Doctest sur Vim (2)
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
Créons une fonction pour le test paramétré à l'aide d'un objet frame
Covector pour penser en fonction
Créer une fonction pour afficher des images comme Jupyter / RStudio [Docker]
Créer un dictionnaire en Python
Créez un bot Mastodon avec une fonction pour répondre automatiquement avec Python
Comment appeler une fonction
Créons un script qui s'enregistre avec Ideone.com en Python.
Fonction pratique pour ajouter des colonnes n'importe où dans Pandas DataFrame
Essayez de dessiner une fonction logistique
Pour renvoyer char * dans une fonction de rappel à l'aide de ctypes en Python
Cochez le bouton Vérifier dans Tkinter pour autoriser la modification de l'entrée
Comment changer la couleur du seul bouton pressé avec Tkinter
J'ai écrit une fonction pour charger le script d'extension Git en Python
Créer une fonction d'authentification utilisateur dans Airflow
Créer un lecteur CSV avec Flask
Créer une interface graphique python à l'aide de tkinter
Créer un conteneur DI avec Python
Étapes pour créer un projet Django
Implémenter un paramètre de date dans Tkinter
Comment créer un package Conda
Créer un fichier binaire en Python
Comment créer une fonction récursive
Comment créer un Dockerfile (basique)
5 façons de créer un chatbot Python
Créer une chaîne aléatoire en Python
Comment créer un fichier de configuration
Créer un bot LINE avec Django
Créez des raccourcis pour exécuter des fichiers Python sur le terminal avec VScode
Créons une fonction de chat avec Vue.js + AWS Lambda + dynamo DB [Paramètres AWS]
Diverses méthodes pour créer numériquement la fonction inverse d'une certaine fonction Introduction
[Python / Tkinter] Rechercher Pandas DataFrame → Créer un formulaire de recherche simple à afficher
Créez une commande pour supprimer tous les fichiers temporaires générés dans un dossier spécifique
Comment créer un wrapper qui préserve la signature de la fonction à envelopper
Créons une base de données clients où le code QR est automatiquement émis en Python
[Python] [Word] [python-docx] Essayez de créer un modèle de phrase de mot en Python en utilisant python-docx
J'ai essayé de créer un linebot (implémentation)
Comment créer un clone depuis Github
Créer un décorateur de fonction Python avec Class
Créer un bot pour retweeter les informations sur le virus corona
Comment créer un dossier git clone
Je veux imprimer dans la notation d'inclusion
J'ai essayé de créer un linebot (préparation)
Précautions lors du décapage d'une fonction en python