I want to make an apps which when i press the button save in AddTask Class, the text which is in the text input will directly updated to the Label which is in the Details Class, but what i'm doing is not working there.. can anyone please help me with this?
kivy#7
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from KivyCalendar import DatePicker
from kivy.lang import Builder
from kivy.uix.popup import Popup
from kivy.properties import ObjectProperty
from database import DataBase
from database2 import DataBase2
from kivy.uix.label import Label
from kivy.core.window import Window
Window.size = (300,600)
from kivy.config import Config
Config.set('graphics', 'resizable', '0')
Config.set('graphics', 'width', '300')
Builder.load_file('window.kv')
class HalamanUtama(Screen):
def submit (self):
name = self.ids.TaskName.text
self.ids.task_one.text = name
def next(self):
layout = self.ids['invoices']
arr = db.get_data()
for invoice in arr:
lab1 = Label(text=invoice, size_hint_x=.35, halign='left')
layout.add_widget(lab1)
class AddTask(Screen):
names = ObjectProperty(None)
desc = ObjectProperty(None)
deadline = ObjectProperty(None)
reminder1 = ObjectProperty(None)
def submit(self):
if self.names.text != "" and self.desc.text != "" and self.deadline.text != "" and self.reminder1.text != "":
db.add_task(self.names.text, self.desc.text, self.deadline.text, self.reminder1.text)
self.reset()
hu = HalamanUtama()
return hu.next()
else:
invalidForm()
def reset(self):
self.names.text = ""
self.desc.text = ""
self.deadline.text = ""
self.reminder1.text = ""
def update_value(self, inst):
""" Update textinput value on popup close """
self.text = "%s-%s-%s" % tuple(self.cal.active_date)
self.focus = False
App.get_running_app().root.ids.deadline.text = self.text
def show_calendar(self):
datePicker.show_popup(1, .3)
class DetailTask(Screen):
def btn(self):
shows = Delete()
popupWindow = Popup(title="Delete Task", content=shows, separator_height=0, size_hint=(None, None),
size=(230, 230))
popupWindow.open()
class UncompletedExam(Screen):
def next(self):
layout = self.ids['idk']
arr = db2.get_data()
for Idk in arr:
lab2 = Label(text=Idk, size_hint_x=.35, halign='left')
layout.add_widget(lab2)
class AddExam(Screen):
namess = ObjectProperty(None)
descc = ObjectProperty(None)
deadlinee = ObjectProperty(None)
reminder11 = ObjectProperty(None)
def submit(self):
if self.namess.text != "" and self.descc.text != "" and self.deadlinee.text != "" and self.reminder11.text != "":
db2.add_exam(self.namess.text, self.descc.text, self.deadlinee.text, self.reminder11.text)
self.reset()
ue = UncompletedExam()
return ue.next()
else:
invalidForm()
def update_value(self, inst):
""" Update textinput value on popup close """
self.text = "%s-%s-%s" % tuple(self.cal.active_date)
self.focus = False
App.get_running_app().root.ids.deadlinee.text = self.text
def show_calendar(self):
datePicker.show_popup(1, .3)
def reset(self):
self.namess.text = ""
self.descc.text = ""
self.deadlinee.text = ""
self.reminder11.text = ""
class DetailExam(Screen):
pass
class WindowsManager(ScreenManager):
pass
class Delete(Screen):
pass
class ListYPP(App):
def build(self):
return WindowsManager()
def vibrate(self, time):
vibrator.vibrate(time=5)
def pattern(self, pattern):
vibrator.pattern([0, 0, 1, 2])
def exists(self):
return self._exists()
def cancel(self):
self._cancel()
# private
def _vibrate(self, **kwargs):
raise NotImplementedError()
def _pattern(self, **kwargs):
raise NotImplementedError()
def _exists(self, **kwargs):
raise NotImplementedError()
def _cancel(self, **kwargs):
raise NotImplementedError()
def invalidLogin():
pop = Popup(title='Invalid Login',
content=Label(text='Invalid username or password.'),
size_hint=(None, None), size=(300, 300))
pop.open()
def invalidForm():
pop = Popup(title='Invalid Form',
content=Label(text='Please fill in all inputs with valid information.', font_size= 14.7),
size_hint=(None, None), size=(300, 300))
pop.open()
db2 = DataBase2("examdetail.txt")
db = DataBase("taskdetail.txt")
if __name__ == "__main__":
ListYPP().run()
database#1
import datetime
from KivyCalendar import DatePicker
from kivy.config import Config
Config.set('graphics', 'resizable', '0')
Config.set('graphics', 'width', '300')
class DataBase:
def __init__(self, filename):
self.filename = filename
self.taskdetails = None
self.file = None
self.load()
def load(self):
self.file = open(self.filename, "r")
self.taskdetails = {}
for line in self.file:
taskname, desc, deadline, reminder1 = line.strip().split(";")
self.taskdetails[taskname] = (desc, deadline, reminder1)
self.file.close()
def add_task(self, taskname, desc, deadline, reminder1):
if taskname.strip() not in self.taskdetails:
self.taskdetails[taskname.strip()] = (desc.strip(), deadline.strip(), reminder1.strip())
self.save()
return 1
else:
print("Task Name exists already")
return -1
def get_data(self):
FullDetails = self.taskdetails
return FullDetails
def save(self):
with open(self.filename, "w") as f:
for detail in self.taskdetails:
f.write(detail + ";" + self.taskdetails[detail][0] + ";" + self.taskdetails[detail][1] + ";" + self.taskdetails[detail][2] + "\n")
@staticmethod
def get_date():
return str(datetime.datetime.now()).split(" ")[0]
database#2
import datetime
class DataBase2:
def __init__(self, filename):
self.filename = filename
self.examdetails = None
self.file = None
self.load()
def load(self):
self.file = open(self.filename, "r")
self.examdetails = {}
for line in self.file:
examname, descc, deadlinee, reminder11 = line.strip().split(";")
self.examdetails[examname] = (descc, deadlinee, reminder11)
self.file.close()
def add_exam(self, examname, descc, deadlinee, reminder11):
if examname.strip() not in self.examdetails:
self.examdetails[examname.strip()] = (descc.strip(), deadlinee.strip(), reminder11.strip())
self.save()
return 1
else:
print("Exam Name exists already")
return -1
def get_data(self):
FullDetails = self.examdetails
return FullDetails
def save(self):
with open(self.filename, "w") as f:
for detail in self.examdetails:
f.write(detail + ";" + self.examdetails[detail][0] + ";" + self.examdetails[detail][1] + ";" + self.examdetails[detail][2] + "\n")
@staticmethod
def get_date():
return str(datetime.datetime.now()).split(" ")[0]
windows.kv
#:import FadeTransition kivy.uix.screenmanager.FadeTransition
:
transition: FadeTransition()
HalamanUtama:
AddTask:
DetailTask:
UncompletedExam:
AddExam:
DetailExam:
Delete:
:
name : "halamanutama"
invoices:invoices
FloatLayout:
Image:
source: 'REVISI TASK.jpg'
pos_hint:{'left':1, 'top':1}
size_hint : 1,1
allow_stretch : True
keep_ratio : False
GridLayout:
id: invoices
cols: 1
#orientation: "horizontal"
padding : 5, 5
spacing: 10, 10
#size: 100, 50
size_hint: 1, 0.7
pos_hint: {'center_x':0.5, 'center_y':0.440}
Button:
text: ""
background_color: 0,0,0,0
canvas.before:
Color:
rgba: 0,0,0,1
Line:
width: 1
rectangle: self.x, self.y, self.width, self.height
color: 0,0,0,1
text_size: self.size
halign: 'center'
valign: 'middle'
Button:
text: ""
background_color: 0,0,0,0
canvas.before:
Color:
rgba: 0,0,0,1
Line:
width: 1
rectangle: self.x, self.y, self.width, self.height
color: 0,0,0,1
text_size: self.size
halign: 'center'
valign: 'middle'
Button:
text: ""
background_color: 0,0,0,0
canvas.before:
Color:
rgba: 0,0,0,1
Line:
width: 1
rectangle: self.x, self.y, self.width, self.height
color: 0,0,0,1
text_size: self.size
halign: 'center'
valign: 'middle'
Button:
text: ""
background_color: 0,0,0,0
canvas.before:
Color:
rgba: 0,0,0,1
Line:
width: 1
rectangle: self.x, self.y, self.width, self.height
color: 0,0,0,1
text_size: self.size
halign: 'center'
Aucun commentaire:
Enregistrer un commentaire