pos_hint不移动FloatLayout kivy中的自定义小部件

2024-06-01 11:09:41 发布

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

我想设置一个日月显示。在

规划师kv文件我无法让Telldate子小部件与FloatLayout中的pos_hint一起工作,但它似乎与Button一起工作。在

我不确定我是否正确地设置了FloatLayout,或者我的方法不对。在

我知道Telldate是一个自定义小部件,在FloatLayout中是一个子小部件,除非我错了。 其他一切都如期进行

在主.py在

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from time import strftime
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label

class Telldate(Widget):
   todayday = ObjectProperty('')

   def __init__(self,*args, **kwargs):
       super().__init__(*args, **kwargs)
       self.todayday= strftime('%A')

class PlannerApp(App):
    pass

if __name__ == '__main__':
    PlannerApp().run()

在规划师kv在

^{pr2}$

我使用的是pythonv3.6.2和kivyv1.10.0和IDLE V3.6.2 谢谢你的耐心!在

----编辑1:---

使用

class Telldate(FloatLayout):

而不是

class Telldate(Widget):

允许我设置提示大小,因为我现在继承了floatinglayout属性而不是widget属性,但是仍然不允许设置hint_pos。 其余代码仍然相同。在


Tags: fromposimportapp部件widgetclasskv
1条回答
网友
1楼 · 发布于 2024-06-01 11:09:41

所以我学到的是widget不继承布局的属性,这就是我的问题开始的地方Telldate(Widget),我在widget的文档中发现了这一点。在

改为使用Telldate(FloatLayout)并调用(不确定术语是否正确)通过<Telldate>class Telldate调用到kivy中解决了我的问题。在

然后创建FloatLayout,无论何时我想调用一个自定义小部件,就像在.kv文件中一样

在规划师kv在

<Tellday@Label>:

    size:(50,50)        



<Telldate>:
    FloatLayout:                
        Tellday:
            size_hint:( None,None)              
            text: self.parent.parent.todayday
            pos_hint:{'top': 0.5,'right':0.5}

在主.py在

^{pr2}$

希望这对某人有帮助!在

相关问题 更多 >