Kivy在导入模块“pandasgui”时出现问题。它显示一个黑屏,按钮被冻结

2024-10-04 11:23:47 发布

您现在位置:Python中文网/ 问答频道 /正文

使用下面的代码,我可以在Kivy中按下一个按钮,然后在Kivy之外打开一个外部gui(“pandasgui”),它非常适合显示pandas数据帧

不幸的是,如果我在开始时导入模块“pandasgui”,kivy会显示一个黑屏,这就是为什么我要在函数中导入模块

此时代码工作正常,因为当您按下“ShowDataFrame”按钮时,Dataframe显示在外部“pandasgui”GUI中

尽管如此,当“pandasgui”GUI打开时,“ShowDataFrame”按钮有时会冻结(您可以看到按钮上保持稳定的白点……这里肯定有问题)。即使我关闭“pandasgui”GUI,“ShowDataFrame”也会被冻结或显示这样的白点

我怎样才能修好它

我也想知道,如果我在代码开头导入“pandasgui”模块,为什么kivy会显示一个黑屏。我以前从未见过这样的行为

from kivy.lang import Builder
from kivymd.app import MDApp


KV = '''
Screen:           
    MDRaisedButton:         
        pos_hint: {'center_x': .5, 'center_y': .8}           
        text: "Show Dataframe"
        on_release: app.showDF()  
        
    MDRaisedButton:         
        pos_hint: {'center_x': .5, 'center_y': .6}    
        text: "Press to print <Hello World>"
        on_release: app.generalPrinting()       
'''


class Example(MDApp):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

    def showDF(self):
        # import modules
        from pandasgui import show
        import pandas as pd
        #Create dataframe
        d = {'col1': [1, 2], 'col2': [3, 4]}
        df = pd.DataFrame(data=d)
        #Show DF
        gui = show(df) # open in pandasGUI

    def generalPrinting(self):
        print("Hello World")

    def build(self):
        return Builder.load_string(KV)

Example().run()

Tags: 模块代码fromimportselfappdefgui