相关疑难解决方法(0)

切换kivy小部件

我正在使用Kivy python库.

我定义了两个小部件.

程序运行时,我运行第一个小部件.

当按下该窗口小部件按钮时,我希望它消失并被第二个窗口小部件替换.

这是两个小部件的.kv

#uitest.kv
<TestForm>:
    canvas:
        Rectangle:
            pos: self.center_x, 0
            size: 10, self.height

    BoxLayout:
        size: root.size
        padding: 40
        Button:
            text: 'Hello'
            on_release: root.testCallback()

<TestForm2>:
    canvas:
        Rectangle:
            pos: self.center_x, 0
            size: self.height, 10
Run Code Online (Sandbox Code Playgroud)

我的主python文件运行应用程序,并返回第一个小部件

#main.py
from testform import TestForm
from kivy.app import App

class UITestApp(App):
    def build(self):
        return TestForm()

# Main launching point
if __name__ in ('__main__', '__android__'):
    UITestApp().run()
Run Code Online (Sandbox Code Playgroud)

我的第一个小部件有一个回调.这是代码所属的地方

from testform2 import TestForm2
from kivy.uix.widget import Widget

class TestForm(Widget):
    def testCallback(self):
        TestForm2() # Code in question goes …
Run Code Online (Sandbox Code Playgroud)

python widget kivy

8
推荐指数
2
解决办法
6970
查看次数

在Kivy中隐藏和显示一个小部件

我正在开发一个Kivy项目,当列表中没有元素时,我需要显示一个标签.否则,我需要显示一个列表视图.

这些是我描述的两个场景:

什么时候没有朋友表示: 没朋友

当列表包含朋友时: 与朋友列出

这是我的Kivy文件:

#: kivy 1.9.1
#: import ListAdapter kivy.adapters.listadapter.ListAdapter
#: import FriendItemButton gui.FriendItemButton

ChumMeRoot:

<ChumMeRoot>:
    friend_list_view: friend_list_view
    FriendList:
        id: friend_list_view


<FriendItemButton>:
    text: self.full_name
    height: "40dp"
    size_hint_y: None


<FriendList>:
    orientation: 'vertical'
    friend_list: friend_list_view
    Button:
        height: '45dp'
        size_hint_y: None
        text: 'Add Friend'
        on_press: app.root.show_add_friend_form()
    ListView:
        id: friend_list_view
        adapter:
            ListAdapter(
            data=[],
            cls=FriendItemButton,
            args_converter=root.args_converter)


<AddFriendFormInput@BoxLayout>
    height: '30dp'
    size_hint_y: None


<AddFriendForm>:
    orientation: 'vertical'
    first_name_input: first_name
    last_name_input: last_name
    AddFriendFormInput:
        Label:
            text: 'First Name'
        TextInput:
            id: first_name
    AddFriendFormInput:
        Label:
            text: 'Middle Name'
        TextInput:
    AddFriendFormInput: …
Run Code Online (Sandbox Code Playgroud)

python kivy kivy-language

8
推荐指数
2
解决办法
8119
查看次数

Kivy:如何使小部件表现得像溢出:隐藏

我想在Kivy中创建GridLayout,其中包含许多矩形按钮和一些不同大小的自定义图像.为此,我想缩放图像(我想要这样做的方式如下所示),然后裁剪/隐藏溢出小部件边框的部分.调整大小很好,但我无法弄清楚如何隐藏/裁剪矩形之外的部分.例如:如果小部件的尺寸为10px x 10px,而我的图像为100px x 200px,我将其重新调整为10px x 20px并将其置于小部件中,但是下方的5px和abowe将是可见的.我不要那个.:)云有人帮我解决这个问题?

class PlaceIcon(Widget):
    def __init__(self,image_path, **kwargs):
        super(PlaceIcon, self).__init__(**kwargs)
        self.bind(size=self.adjust_size)
        self.image = Image(source=image_path)
        self.image_path = image_path  

    def adjust_size(self,*args):
        (a,b) = self.image.texture.size
        (x,y) = self.size
        (x1,y1) = self.pos
        if x > y:
            scale = x/a
        else:
            scale = y/b
        x1 -= (scale*a-x)/2
        y1 -= (scale*b-y)/2
        with self.canvas:
            self.canvas.clear()
            self.background = Rectangle(texture=self.image.texture, pos=(x1,y1), size=(scale*a,scale*b))
Run Code Online (Sandbox Code Playgroud)

python kivy

6
推荐指数
1
解决办法
1402
查看次数

标签 统计

kivy ×3

python ×3

kivy-language ×1

widget ×1