Kivy Scrollview中的图像不正确

时间:2020-05-16 16:30:26

标签: python kivy kivy-language

我正在尝试使用kivy制作笔记本应用,用户可以在其中上下滚动表格并在上面书写。我尝试使用ScrollView,但它似乎不起作用-我希望将工作表图像拉伸到窗口的宽度,并且高度大于宽度-使图像可以上下滚动。相反,发生了什么:

我真的很感激有人研究代码并尝试弄清楚我在做什么错:)

python代码:

DrmCustomer::updateOrCreate([
    'email'=> isset($row['email']) ? $row['email'] : "",
        'user_id'=> $user_id,
        ],[
        (isset($row['fieldMobilePhone']['value'])) ?: 'phone'=> $row['fieldMobilePhone']['value'],
        (isset($row['fieldWebsite']['value'])) ?: 'website'=> $row['fieldWebsite']['value'],
        (isset($row['fieldStreet1']['value'])) ?: 'address'=> $row['fieldStreet1']['value'],
        (isset($row['fieldCity']['value'])) ?: 'city'=> $row['fieldCity']['value'],
        (isset($row['fieldState']['value'])) ?: 'state'=> $row['fieldState']['value'],
        (isset($row['fieldZip']['value'])) ?: 'zip_code'=> $row['fieldZip']['value'],
        (isset($row['fieldCountry']['value'])) ?: 'country'=> $row['fieldCountry']['value'],
         'default_language'=> 'DE',
         'currency'=> 'EUR',
         'insert_type'=> 'API'
      ]);

kv文件:


import kivy
from kivy.lang import Builder
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.scrollview import ScrollView
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
from PIL import Image as Image1
from kivy.uix.image import Image

GUI = Builder.load_file('style.kv')
Window.size = (1000, 200)

img_size = Image1.open("images/notebook.png").size


class NotebookScreen(GridLayout):

    def __init__(self, **kwargs):
        self.rows = 1
        super(NotebookScreen, self).__init__(**kwargs)

    def get_size_for_notebook(self, **kwargs):
        global img_size
        width, height = Window.size
        return width, (img_size[0] * height / width)


class MainApp(App):

    def build(self):
        return NotebookScreen()


if __name__ == "__main__":
    MainApp().run()


1 个答案:

答案 0 :(得分:0)

问题是您在size中设置了Image的{​​{1}},但是由于kv超越了{{1 }}。默认的size_hintsize,因此不会进行滚动(size_hint被限制为适合(1,1))。要使您的Image生效,只需添加:

ScrollView

到您的size中的size_hint: None, None