• <legend id='XdrNp'><style id='XdrNp'><dir id='XdrNp'><q id='XdrNp'></q></dir></style></legend>

    1. <i id='XdrNp'><tr id='XdrNp'><dt id='XdrNp'><q id='XdrNp'><span id='XdrNp'><b id='XdrNp'><form id='XdrNp'><ins id='XdrNp'></ins><ul id='XdrNp'></ul><sub id='XdrNp'></sub></form><legend id='XdrNp'></legend><bdo id='XdrNp'><pre id='XdrNp'><center id='XdrNp'></center></pre></bdo></b><th id='XdrNp'></th></span></q></dt></tr></i><div id='XdrNp'><tfoot id='XdrNp'></tfoot><dl id='XdrNp'><fieldset id='XdrNp'></fieldset></dl></div>

        <bdo id='XdrNp'></bdo><ul id='XdrNp'></ul>
        <tfoot id='XdrNp'></tfoot>

        <small id='XdrNp'></small><noframes id='XdrNp'>

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

        时间:2023-10-09
          <tbody id='bJSDl'></tbody>
          <tfoot id='bJSDl'></tfoot>

            <legend id='bJSDl'><style id='bJSDl'><dir id='bJSDl'><q id='bJSDl'></q></dir></style></legend>
              <bdo id='bJSDl'></bdo><ul id='bJSDl'></ul>

              1. <small id='bJSDl'></small><noframes id='bJSDl'>

              2. <i id='bJSDl'><tr id='bJSDl'><dt id='bJSDl'><q id='bJSDl'><span id='bJSDl'><b id='bJSDl'><form id='bJSDl'><ins id='bJSDl'></ins><ul id='bJSDl'></ul><sub id='bJSDl'></sub></form><legend id='bJSDl'></legend><bdo id='bJSDl'><pre id='bJSDl'><center id='bJSDl'></center></pre></bdo></b><th id='bJSDl'></th></span></q></dt></tr></i><div id='bJSDl'><tfoot id='bJSDl'></tfoot><dl id='bJSDl'><fieldset id='bJSDl'></fieldset></dl></div>
                • 本文介绍了Kivy:如何使小部件表现得像溢出:隐藏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

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

                  I want to create GridLayout in Kivy with many rectangle buttons with some custom images with different size. To do so, I want to scale image (the way I wan to do this is shown below) and then crop/hide the parts that overflow the widget borders. The resizing works nice, but I can not figure out how to hide/crop that parts which are outside the rectangle. For example: if widget have dimensions of 10px x 10px and my image is 100px x 200px I will rezise it to 10px x 20px and center it in widget, but the 5px below and abowe will be visible. I do not want that. :) Cloud somebody help me with this problem?

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

                  推荐答案

                  我会说看看Texture.get_region:http://kivy.org/docs/api-kivy.graphics.texture.html#kivy.graphics.texture.Texture.get_region

                  I would say to look at Texture.get_region: http://kivy.org/docs/api-kivy.graphics.texture.html#kivy.graphics.texture.Texture.get_region

                  因此,您可以只使用要显示和传递的纹理部分,就好像它是完全不同的纹理一样.

                  So you can use only the part of the texture you want to display and passing as if it was an entirely different texture.

                  另一种方法是使用 StencilView,但我认为这里的 get_region 更好.

                  Another way would be to use StencilView, but i think here the get_region is better.

                  这篇关于Kivy:如何使小部件表现得像溢出:隐藏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:Kivy CheckBox 看起来像实心黑框(不是复选框) 下一篇:包装 Kivy 标签的文本

                  相关文章

                  最新文章

                  <legend id='foQYw'><style id='foQYw'><dir id='foQYw'><q id='foQYw'></q></dir></style></legend>

                  <small id='foQYw'></small><noframes id='foQYw'>

                    <i id='foQYw'><tr id='foQYw'><dt id='foQYw'><q id='foQYw'><span id='foQYw'><b id='foQYw'><form id='foQYw'><ins id='foQYw'></ins><ul id='foQYw'></ul><sub id='foQYw'></sub></form><legend id='foQYw'></legend><bdo id='foQYw'><pre id='foQYw'><center id='foQYw'></center></pre></bdo></b><th id='foQYw'></th></span></q></dt></tr></i><div id='foQYw'><tfoot id='foQYw'></tfoot><dl id='foQYw'><fieldset id='foQYw'></fieldset></dl></div>

                    <tfoot id='foQYw'></tfoot>

                        <bdo id='foQYw'></bdo><ul id='foQYw'></ul>