Две цели моей программы: # 1 копировать заметки в буфер обмена после нажатия кнопки;и # 2 заставляют виджеты кнопок сохраняться при перезапуске программы.(Этот пост будет посвящен исключительно цели № 1) Кнопки заполнены, как и ожидалось, но команда не работает должным образом (хотя ошибок нет).Я попробовал другие модули буфера обмена, такие как pyperclip, без удачи.Извиняюсь, если за этим было трудно следовать, я только начал изучать python как мой первый язык программирования на прошлой неделе.
Я хотел бы знать, как мне заставить кнопки копировать их соответствующие заметки в буфер обмена.
from tkinter import *
import json
root = Tk()
root.title("CopyNotes")
root.geometry()
json_file = open("dictionary.json", encoding="utf-8")
mynotes = json.load(json_file)
for keys in mynotes:
btnz = Button(root, text=mynotes[keys][0], font="Helvetica 10 bold", bg="silver", command=root.clipboard_append(mynotes[keys][1]), height=2, width=13).pack(side=TOP, fill=BOTH, expand=YES)
root.mainloop()
Итак, чтобы прояснить ситуацию, проблема, которую я пытаюсь решить, заключается в том, что команда кнопки не работает должным образом.При первом нажатии любой кнопки она копирует 'button1notebutton2notebutton3note' и вообще перестает работать после этого.Эффект, которого я хочу добиться первой кнопкой: root.clipboard_append (button1note) и т. Д. Для остальных ..
После того, как я выясню, как это сделать, я планирую принять ввод пользователя, чтобы добавить свои собственные кнопкидобавив в словарь.Редактировать: Исправлена ошибка буфера обмена -
mynotes = pickle.load(open("note.p", "rb"))
print(mynotes)
for keys in mynotes:
thenotes = mynotes[keys][1]
mybtnz = Button(ctowin, text=mynotes[keys][0], font="Helvetica 10 bold", bg="silver",
command=lambda thenotes=thenotes: pyperclip.copy(thenotes), height=2, width=13)\
.pack(side=TOP, fill=BOTH, expand=YES)
Пример кнопки