Kivy Popup呈现问题

时间:2016-07-04 11:16:20

标签: python popup kivy render

我正在开发一个总线驱动程序应用程序。偶尔会在MQTT主题上发布消息,应用程序订阅该主题(由服务器)。当出现此类消息时,必须出现弹出窗口。我自定义了默认的Kivy弹出窗口:更改了背景,添加了带有Lable和Button的FloatLayout作为内容。

问题在于,在几种情况下(5-6),弹出窗口的纹理元素会跳开,如背景,标签文本或按钮的图像。

以下是我的Popup类的Kivy定义:

<BktsPopup@Popup>:
title: 'Alert message'
title_align: 'center'
title_size: 25
size_hint: (0.6, 0.6)
# size: (400, 300)
auto_dismiss: False
separator_height: 0
message: popup_msg
border: (14, 14, 14, 14)

FloatLayout:
    BktsLabel:
        id: popup_msg
        font_size: 20
        size_hint_y: 0.7
        pos_hint: {'center_x': 0.5, 'y': 0.5}
        # size_hint_y: 60
    BktsButton:
        id: ok_btn
        background_normal: 'res/btn_released_gray.png'
        background_down: 'res/btn_pressed_gray.png'        
        size_hint_x: 0.4
        size_hint_y: 0.3
        pos_hint: {'center_x': 0.5, 'y': 0.1}
        text: 'OK'
        font_size: 25
        on_press: root.dismiss()

这是python类:

class BktsPopup(Popup):
    popup_back_color = ListProperty([])
    message = ObjectProperty()

    def __init__(self, text, title, level):
        Popup.__init__(self)
        self.title = title
        self.message.text = text
        if level is LEVEL_NORMAL:
            self.background = 'res/popup_back_green.png'
        elif level is LEVEL_URGENT:
            self.background = 'res/popup_back_red.png'

以下是弹出窗口的打开方式:

def on_dispatcher_message(self, level, text):
    popup = BktsPopup(text, 'Dispatcher', level)
    popup.bind(on_dismiss=self.send_message_ack)
    popup.open()
    self.store_event(text)

这是弹出窗口的正常外观: normal case

这是纹理异常情况: bad case

有时,整个背景会跳跃并出现在左下角。 有什么想法吗?

0 个答案:

没有答案