私は、文字を作成してアプリケーションにのみ保存できるアプリケーションを作成しようとしています。私はそれをコンピュータ自体にやらないで保存する方法がわかりません。メイン画面には、作成するプロファイルとプロファイルを表示する2つのオプションがあります。私はそれらを接続する方法を知らない。コードを入れておきますが、それはスペースを節約するためのほんの一部です。PythonのTkinterを使用して、そのアプリケーションでのみ使用するデータを保存するにはどうすればよいですか?
import tkinter
from tkinter import *
class Application(Tk):
def __init__(self, *args, **kwargs):
Tk.__init__(self, *args, **kwargs)
self.minsize(width=1300, height=750)
self.maxsize(width=1300, height=750)
container = Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
#there will be another page for profiles
self.frames={}
for F in (Startpage, Createpage):
page_name = F.__name__
frame = F(parent=container, controller=self)
self.frames[page_name] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("Startpage")
def show_frame(self, page_name):
frame = self.frames[page_name]
frame.tkraise()
class Startpage(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
self.controller = controller
self.configure(bg='white')
headLabel = Label(self, text="Character Profiles", font=("Times New Roman", 36), bg='white', height=2)
headLabel.grid(row=0, column=0, columnspan=3, padx=10, pady=25, sticky='n')
createButton = Button(self, text="Create", font=("Times New Roman", 20), bg="black", fg="white", width=30, height=2,
command=lambda: controller.show_frame("Createpage"))
createButton.grid(row=1, column=2, padx=30, pady=2, sticky="sw")
profilesButton = Button(self, text="Profiles", font=("Times New Roman", 20), bg="black", fg="white", width=30, height=2)
profilesButton.grid(row=1, column=0, padx=30, pady=2, sticky="se")
spacer1 = Label(self, bg='white', width=33)
spacer1.grid(row=1, column=1, padx=10, pady=20)
class Createpage(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
self.controller = controller
self.configure(bg='white')
backButton = Button(self, text="back", font=("Times New Roman", 20), bg='black', fg='white',
command=lambda: controller.show_frame("Startpage"))
backButton.grid(row=0, column=0, padx=10, pady=2)
headLabel = Label(self, text="Create a New Character", font=("Times New Roman", 24), bg='white')
headLabel.grid(row=0, column=4, padx=10, pady=2)
img = PhotoImage(file="rsz_profilepic.png")
picLabel = Label(self, image=img, borderwidth=0)
picLabel.image = img
picLabel.grid(row=1, column=0, padx=10, pady=2, columnspan=4)
fullnameLabel = Label(self, bg="white", text="Full Name: ", font=("Times New Roman", 16))
fullnameLabel.grid(row=2, column=0, padx=0, pady=2, sticky="E")
#this would be the file name
fullnameEntry = Entry(self, font=("Times New Roman", 14), bg="#EEEEEE")
fullnameEntry.grid(row=2, column=1, columnspan=3, padx=0, pady=2, sticky="w")
nicknameLabel = Label(self, font=("Times New Roman", 16), text="Alias: ", bg="white")
nicknameLabel.grid(row=3, column=0, padx=0, pady=2)
aliasEntry = Entry(self, font=("Times New Roman", 16), bg="#EEEEEE")
aliasEntry.grid(row=3, column=1, columnspan=3, sticky="W")
sexLabel = Label(self, text="Sex: ", bg="white", font=("Times New Roman", 16))
sexLabel.grid(row=4, column=0, padx=0, pady=2)
v = IntVar()
male = Radiobutton(self, text="Male", bg="white", variable=v, value=1)
female = Radiobutton(self, text="Female", bg="white", variable=v, value=2)
other = Radiobutton(self, text="Other", bg="white", variable=v, value=3)
male.grid(row=4, column=1, sticky="w")
female.grid(row=4, column=2, sticky="w")
other.grid(row=4, column=3, sticky="w")
ageLabel = Label(self, text="Age: ", bg="white", font=("Times New Roman", 14))
ageLabel.grid(row=5, column=0, padx=0, pady=2)
ageEntry = Entry(self, font=("Times New Roman", 14), bg="#EEEEEE")
ageEntry.grid(row=5, column=1, columnspan=3, padx=0, pady=2, sticky="w")
statusLabel = Label(self, text="Status: ", bg="white", font=("Times New Roman", 14))
statusLabel.grid(row=6, column=0, padx=0, pady=2)
s = IntVar()
alive = Radiobutton(self, text="Alive", bg="white", variable=s, value=1)
deceased = Radiobutton(self, text="Deseased", bg="white", variable=s, value=2)
alive.grid(row=6, column=1, sticky="w")
deceased.grid(row=6, column=2, sticky="w")
bigassFrame = Frame(self, bg='white', width=1000, height=1000)
bigassFrame.grid(row=1, column=4, rowspan=50, padx=10, pady=2)
#there are more buttons below these two
generalButton = Button(bigassFrame, text="General", font=("Times New Roman", 14), width=25, fg='white', bg='black')
generalButton.grid(row=0, column=0, padx=10, pady=2)
appearanceButton = Button(bigassFrame, text="Appearance", font=("Times New Roman", 14), width=25, fg='white', bg='black')
appearanceButton.grid(row=1, column=0, padx=10, pady=2)
#here is where the information to be stored is
genFrame = Frame(self, bg='white')
genFrame.grid(row=1, column=6, padx=10, pady=2)
nameLabel = Label(genFrame, text="Name: ", font=("Times New Roman", 14), bg='white')
nameLabel.grid(row=0, column=0, padx=0, pady=2)
nameEntry = Entry(genFrame, font=("Times New Roman", 14), bg="#EEEEEE")
nameEntry.grid(row=0, column=1, padx=0, pady=2)
namemeaningLabel = Label(genFrame, text="Name Meaning: ", font=("Times New Roman", 14), bg='white')
namemeaningLabel.grid(row=1, column=0, padx=0, pady=2)
namemeaningEntry = Entry(genFrame, font=("Times New Roman", 14), bg="#EEEEEE")
namemeaningEntry.grid(row=1, column=1, padx=0, pady=2)
q1Label = Label(genFrame, text="Who named him/her?", font=("Times New Roman", 14), bg='white')
q1Label.grid(row=2, column=0, padx=0, pady=2)
q1Entry = Entry(genFrame, font=("Times New Roman", 14), bg="#EEEEEE")
q1Entry.grid(row=2, column=1, padx=0, pady=2)
#this button will save a copy of the information to the profiles page
saveButton = Button(self, text="Save", font=("Times New Roman", 14))
saveButton.grid(row=0, column=7)
if __name__ == "__main__":
app = Application()
app.title("Character Profiles")
app.geometry("1000x800+20+20")
app.mainloop()
これまでに質問を投稿したことはありません。私は正しいかどうかは分かりません。
今後は少ないコードを含めるようにしてください。それはあなたの質問にすべて関連しているわけではありませんが特に、見ることが多いです。私はずっと悪い最初の質問を見た。 – jcolemang
あなたは、アプリケーションを閉じるときと開いたときの間に、Pythonでデータを保存する方法を尋ねていますか? – jcolemang
@jcolemangええ。あなたがそれを閉じると、あなたはそれを開いたときに情報がそこに残るでしょう – DamnFreckles