gpt4 book ai didi

kivy - 你如何使用 kivy 更改应用程序的 Canvas 或窗口大小

转载 作者:行者123 更新时间:2023-12-04 10:24:58 28 4
gpt4 key购买 nike

如何使用 Kivy 更改窗口的大小。我一直在四处寻找,除了进入窗口的大小之外,我几乎可以更改所有内容。

从示例图片文件:
主文件

#!/usr/bin/kivy
'''
Pictures demo
=============

This is a basic picture viewer, using the scatter widget.
'''

import kivy
kivy.require('1.0.6')

from glob import glob
from random import randint
from os.path import join, dirname
from kivy.app import App
from kivy.logger import Logger
from kivy.uix.scatter import Scatter
from kivy.properties import StringProperty
# FIXME this shouldn't be necessary
from kivy.core.window import Window


class Picture(Scatter):
'''Picture is the class that will show the image with a white border and a
shadow. They are nothing here because almost everything is inside the
picture.kv. Check the rule named <Picture> inside the file, and you'll see
how the Picture() is really constructed and used.

The source property will be the filename to show.
'''

source = StringProperty(None)


class PicturesApp(App):

def build(self):

# the root is created in pictures.kv
root = self.root

# get any files into images directory
curdir = dirname(__file__)
for filename in glob(join(curdir, 'images', '*')):
try:
# load the image
picture = Picture(source=filename, rotation=randint(-30,30))
# add to the main field
root.add_widget(picture)
except Exception as e:
Logger.exception('Pictures: Unable to load <%s>' % filename)

def on_pause(self):
return True


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

图片.kv
#:kivy 1.0
#:import kivy kivy
#:import win kivy.core.window

FloatLayout:
canvas:
Color:
rgb: 1, 1, 1
Rectangle:
source: 'data/images/background.jpg'
size: self.size

BoxLayout:
padding: 10
spacing: 10
size_hint: 1, None
pos_hint: {'top': 1}
height: 44
Image:
size_hint: None, None
size: 24, 24
source: 'data/logo/kivy-icon-24.png'
Label:
height: 24
text_size: self.width, None
color: (1, 1, 1, .8)
text: 'Kivy %s - Pictures' % kivy.__version__



<Picture>:
# each time a picture is created, the image can delay the loading
# as soon as the image is loaded, ensure that the center is changed
# to the center of the screen.
on_size: self.center = win.Window.center
size: image.size
size_hint: None, None

Image:
id: image
source: root.source

# create initial image to be 400 pixels width
size: 400, 400 / self.image_ratio

# add shadow background
canvas.before:
Color:
rgba: 1,1,1,1
BorderImage:
source: 'shadow32.png'
border: (36,36,36,36)
size:(self.width+72, self.height+72)
pos: (-36,-36)

我希望能够在 FloatLayout 或 Canvas 中放置一个大小标签以调整窗口大小,但它似乎不起作用。

在应用程序运行之前,我如何确定 Canvas (或包含窗口 - 也许我正在使用错误的术语进行搜索)将有多大?

-编辑-
我发现在 .py 的包含部分添加以下内容有效:
from kivy.config import Config 
Config.set('graphics', 'width', '640')
Config.set('graphics', 'height', '1163')

有没有办法只使用 .kv 文件来做到这一点?

最佳答案

不,大小不能以 kv 为单位设置。您可以使用 Config 设置它如上所述,或者您可以稍后通过在 Window 上设置大小来更改窗口大小。目的:

from kivy.core.window import Window
Window.size = (640, 1163)

关于kivy - 你如何使用 kivy 更改应用程序的 Canvas 或窗口大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24987993/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com