首页 > 解决方案 > 导入模块“pandasgui”时出现 Kivy 问题。它显示黑屏并且按钮被冻结

问题描述

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

不幸的是,如果我在开始时导入模块“pandasgui”,kivy 会显示黑屏,这就是我在函数中导入模块的原因。

目前代码工作正常,因为当您按下“显示数据框”按钮时,数据框会显示在外部“pandasgui”GUI 中。

然而,当“pandasgui”GUI 打开时,“显示数据框”按钮有时会冻结(您可以看到按钮上保持稳定的白点......肯定有些东西在这里不起作用)。即使我关闭“pandasgui”GUI,“显示数据框”也会被冻结或显示这样的白点。

我该如何解决?

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

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()

标签: pythonpandaskivykivymd

解决方案


推荐阅读