为了账号安全,请及时绑定邮箱和手机立即绑定

文本显示在调试窗口中,而不是 Kivy 应用程序的弹出窗口中

文本显示在调试窗口中,而不是 Kivy 应用程序的弹出窗口中

缥缈止盈 2022-08-02 11:04:20
当我试图将一些分析结果放在我的应用程序的弹出窗口中时,我遇到了Kivy的一些奇怪的行为。通过按钮激活,我可以得到一个弹出窗口(它应该显示分析结果,但为空),然后我的结果显示在调试窗口中。但我想在弹出窗口中看到它们。没有错误,没有回溯,只有怪异。这是它的样子:这是运行弹出窗口的行:show_syllsoutput_popup()这是应该填充它的行,但填充调试窗口:try: SyllOutputPopup.screen_output_label.text = cfd_syll.tabulate()所以,问题是如何放入这个弹出窗口(.kv):cfd_syll.tabulate()<SyllOutputPopup>:    FloatLayout:        Label:            id: screen_output_label            font_size: 12            pos: 100, 120
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

screen_output_label不是类的参数,而是小部件的 id,所以那行


SyllOutputPopup.screen_output_label.text = cfd_syll.tabulate()

是错误的,你应该使用:


SyllOutputPopup.ids.screen_output_label.text = cfd_syll.tabulate()

==========


此外,您正在创建SyllOutputPopup类的几个对象。将文本放在一个对象中:


try: SyllOutputPopup.ids.screen_output_label.text = cfd_syll.tabulate()

然后你创建一个新对象,它是空白的,有空的 Label,并显示它:


show = SyllOutputPopup() # Create a new instance

    SyllOutputPopupWindow = Popup(title="Output", content=show, size_hint=(None,None),size=(600,400)) 

    SyllOutputPopupWindow.open()

您应该使用一个对象 - 将文本设置在那里,然后准确地显示该对象,如下所示:


    def output_toscreen(сorpus_root, *args):


        corpus = PlaintextCorpusReader(args[0], '.*')

        cfd_syll = nltk.ConditionalFreqDist(

            (textname, num_syll)

            for textname in corpus.fileids()

            for num_syll in [len(w) for w in ''.join(char for char in reduce_dip(corpus.raw(fileids=textname)) if char in vowels).split()])

        # that will be your object

        self.sylloutputpopup = SyllOutputPopup()

        self.sylloutputpopup.ids.screen_output_label.text = cfd_syll.tabulate()

        show_syllsoutput_popup() # run the popup


def show_syllsoutput_popup():

    show = self.sylloutputpopup

    SyllOutputPopupWindow = Popup(title="Output", content=show, size_hint=(None,None),size=(600,400)) 

    SyllOutputPopupWindow.open()

但只有当上面的两个函数都在同一类中时,这才有效。


查看完整回答
反对 回复 2022-08-02
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信