[PYTHON] Liste de contrôle à l'aide de l'arborescence des cases à cocher → Création de texte

Contexte de la création de code

Je voulais écrire une liste des équipements utilisés pour les vidéos youtube dans la colonne d'explication, N'est-ce pas différent pour chaque chanson?

Ce serait facile si vous pouviez le sélectionner avec l'interface graphique! Voilà pourquoi. image.png

Je pensais que cela prendrait beaucoup de temps pour écrire le code, alors je vais le partager.

Excusez-moi

--Je ne comprends pas vraiment tkinter

--Je ne peux pas maîtriser la classe

C'est pourquoi je ne pouvais pas du tout jouer avec ce qui était écrit en classe. Faisons de notre mieux. Il est peut-être possible d'écrire plus joliment, mais fermez les yeux.

Aperçu

Accédez à la lecture csv → affichage de l'interface graphique → cochez les éléments à extraire

Le flux.

code

import tkinter as tk
from ttkwidgets import CheckboxTreeview
import pandas as pd
import pyperclip

def list_to_txt(lis_checked_item):
    '''
"Je veux stocker la liste dans le presse-papiers avec des sauts de ligne!"
Arguments: liste
    '''
    inst_txt = '\n'.join(lis_checked_item)
    pyperclip.copy(inst_txt)

ttk = tk.ttk
window = tk.Tk()
ct = CheckboxTreeview(window, show='tree') # hide tree headings
ct.pack()

#copy button 
tk.Button(window, text="copy", command=lambda: list_to_txt(ct.get_checked())).pack()

style = ttk.Style(window)

# remove the indicator in the treeview 
style.layout('Checkbox.Treeview.Item', 
             [('Treeitem.padding',
               {'sticky': 'nswe',
                'children': [('Treeitem.image', {'side': 'left', 'sticky': ''}),
                             ('Treeitem.focus', {'side': 'left', 'sticky': '',
                                                 'children': [('Treeitem.text', 
                                                               {'side': 'left', 'sticky': ''})]})]})])

# make it look more like a listbox                                                               
style.configure('Checkbox.Treeview', borderwidth=1, relief='sunken')

# get data
path = "./inst.csv"
inst_data = pd.read_csv(path, sep=',', encoding='shift_jis',header=0)

inst_list = list(inst_data["Numéro de modèle"].values + " / " + inst_data["Fabricant"] )

# add items in treeview
for value in inst_list: 
    ct.insert('', 'end', iid = value, text=value)

window.mainloop()

Résultat de sortie

image.png

Seuls les éléments cochés se trouvent dans le presse-papiers. Je veux voir ce qui suit.

SV-1 88-MR / Korg
Rythm Worf / AKAI 
BeatStep / Arturia

Non, c'est difficile.

Liste d'équipement csv

image.png

Veuillez entrer le numéro de modèle et le fabricant pour le nom de la colonne. Je vais lire. Lors de la copie, assurez-vous que l'emplacement est le même que le fichier exécutable!

Citation

L'article ci-dessous m'a vraiment aidé. Merci beaucoup. ttkwidgets Documentation Release 0.11.0 Documentation » ttkwidgets » CheckboxTreeview Python Tkinter Tk support checklist box? How to create selected checkbox list item using Tkinter

c'est tout.

Recommended Posts

Liste de contrôle à l'aide de l'arborescence des cases à cocher → Création de texte
Créer un chat en utilisant socket
Sélectionnez des fonctionnalités avec des données textuelles
Développement de texte à l'aide des services Mac