当前位置: 首页 > 知识库问答 >
问题:

从另一个类更新标签

凌啸
2023-03-14

我想做一个应用程序,当我按下AddTask类中的save按钮时,文本输入中的文本将直接更新到Details类中的标签,但我所做的在那里不起作用…有谁能帮我一下吗?

    
    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'

共有1个答案

贺高飞
2023-03-14

你可以用PutExtra来做这件事

 类似资料:
  • 问题内容: 我是java的新手,我被困在这里…我要做的是将一个java文件中arraylist的更改更新为另一个文件中的JPanel。我正在对arraylist进行排序,因此无法手动完成。有什么办法可以让我“告诉” JPanel痛楚吗? 我有进行排序(工作)的BubbleSort.java,有包含JPanel和JFrame类(用于显示未排序的直方图的工作)的Animation.java。 这是家庭

  • 大家好,我在更新一些组件时遇到问题,我正在使用JSF、Primeface 5.3、Hibernate。 我有一个包含数据表的选项卡:选项卡1,我有另一个选项卡选项卡2,我想做的是当我更改选项卡2中的农学列并单击Guardar Cambios时,我想更新选项卡1的数据表。我可以更新数据库,当我注销并再次登录时,更改就在那里,但我想要不注销的更改。 这是我的管理员。xhtml: 我感谢你的帮助。

  • 问题内容: 亲爱的大家,我遇到了挥杆相关的问题。由于违反公司政策,我无法共享代码,因此我将尽力解释该问题。 简而言之,我创建了一个扩展包含JLabel的JWindow的类。JLabel的文本是通过计时器对象随机更新的,该计时器对象使用scheduleAtFixedRate方法每50毫秒实例化一个TimerTask。JLabel中的值是通过在一个单独的线程(称为传输线程)中调用一个方法来检索的,该线

  • 我已经创建了一个多边形表(多边形),其中包含名称和点(使用多边形值) 我有另一个表(latlon ),它有lat和lot列,包含超过一百万条记录 我必须在“多边形”表中的点的帮助下更新纬度表中的列(区域名称) 以下 select 语句为一条记录提供正确的输出。 有人能帮我在POSTGIS中编写一个UPDATE查询来获取更多的lat,lon值吗?

  • 问题内容: 我有一个javafx应用程序和一个工作线程,通过来实现,它执行一个漫长的过程,即压缩并上传一组文件。 我已通过将任务进度连接到进度条。 除此之外,我想将有关正在处理的项目的详细状态报告到ui中。 也就是说,正在处理的文件的名称及其大小以及单个文件处理可能引起的任何错误。 用这些信息更新UI不能从工作线程中完成,最多我可以将其添加到同步集合中。 但是然后我需要一些事件来通知UI新数据可用

  • 我有一个javafx应用程序和一个通过实现的工作线程,它执行一个很长的过程,即压缩和上载一组文件。 我已通过将任务进度连接到进度条。 除此之外,我还希望将正在处理的项的详细状态报告到UI中。即正在处理的文件的名称及其大小和单个文件进程可能产生的任何错误。 不能从辅助线程中使用这些信息更新UI,最多只能将其添加到同步集合中。 但我需要一些事件来通知UI新数据可用。 javafx是否对此问题有特定的支