Я пишу свое первое приложение tkinter для Python.Python 3 Tkinter - Как принудительно использовать формат по умолчанию
Приложение само по себе является редактором xml. Он будет искать два элемента и обновлять текстовое значение элемента. Нижеприведенный код является доказательством концепции и на самом деле ничего не обновляет.
#!/usr/bin/env python
from tkinter import *
from tkinter import messagebox
import xml.etree.ElementTree as ET
class NameDropper(Frame):
def __init__(self,fp=None):
self.fp = fp
#Create the Mainframe
root = Tk()
root.config(bg="red")
root.title("NameDropper")
mainframe = Frame(root, colormap="new")
#mainframe.config(width=200,height=200,bg="green")
# place and configure
mainframe.grid(column=0,row=0,sticky=(N,W,E,S)) #makes Frame appear on screen
#mainframe.columnconfigure(0, weight=1)
#mainframe.rowconfigure(0, weight=1)
self.mainframe = mainframe
self.createVariables()
self.createWidgets()
self.gridWidgets()
#self.mainframe.pack(fill=BOTH, expand=YES)
def createVariables(self):
self.start = StringVar()
self.duration = StringVar()
def createWidgets(self):
self.mainframe.startLabel = Label(self.mainframe,text="Start",font=("Helvetica", 16))
self.mainframe.startEntry = Entry(self.mainframe,textvariable=self.start,font=("Helvetica", 16))
# self.mainframe.startLabel.pack(side="left", fill=None, expand=False)
self.mainframe.durLabel = Label(self.mainframe,text="Duration",font=("Helvetica", 16))
# self.mainframe.durLabel.pack(side="left", fill=None, expand=False)
self.mainframe.durEntry = Entry(self.mainframe,textvariable=self.duration,font=("Helvetica", 16))
self.mainframe.saveButton = Button(self.mainframe, text='Save', command=self.save)
self.mainframe.quitButton = Button(self.mainframe,text='Quit',command=self.mainframe.quit)
def gridWidgets(self):
self.mainframe.startLabel.grid(column=0,row=0,sticky=(N,W))
# self.mainframe.startLabel.config(bg="red")
self.mainframe.startEntry.grid(column=1,row=0,sticky=(N,W))
# self.mainframe.startEntry.config(bg="black")
self.mainframe.durLabel.grid(column=0,row=1,sticky=(N,W))
self.mainframe.durEntry.grid(column=1,row=1,sticky=(N,W))
self.mainframe.saveButton.grid(column=0,row=3,sticky=SW)
self.mainframe.quitButton.grid(column=2,row=3,sticky=SE)
def save(self):
root = ET.parse(fp).getroot()
generic_anc_enable = root.findall('GenericANCEnable')
for item in generic_anc_enable:
start_element = item.find('StartTimecode')
duration_element = item.find('DurationTimecode')
start_element.text = str(self.mainframe.startEntry.get())
duration_element.text = str(self.mainframe.durEntry.get())
messagebox.showwarning(start_element.text)
if __name__ == '__main__' :
fp = "C:\\Users\\206420055\\Documents\\VancInsertionLabelTdyShwCrwlTC.xml"
app = NameDropper(fp)
app.mainframe.mainloop()
У меня есть вопрос, есть ли способ, чтобы замаскировать Entry
поля так, чтобы они автоматически и последовательно соблюдать определенный формат?
Цель будет иметь обе метки автоматически в соответствии с форматом xx:yy:zz;nn
Я уже построил это приложение на Java год назад, но новые требования вызывают меня слезть Java.
Оригинальный вопрос от Последнего августа о версии Java здесь Java - Enforce TextField Format - UX - 00:00:00;00
Я нету еще не удался найти какую-либо документацию на соблюдение формата