Kivy是Python中与平台无关的GUI工具。由于它可以在Android, IOS, Linux和Windows等操作系统上运行。它基本上是用于开发Android应用程序, 但这并不意味着它不能在桌面应用程序上使用。
在本文中, 我们将学习如何在kivy python中将按钮圆角化。
现在出现一个问题–在猕猴桃中为按钮创建圆角的首选方法是什么?
基本上,这是一个棘手的问题。我们知道小部件总是一个矩形,但是我们可以改变小部件的背景,并通过使用按钮的一些属性,如background_normal和background_down属性,分别为按钮的正常状态和下状态放置一些图像。
同样,要使按钮的边角圆润,你还必须了解按钮的另一个属性,即border属性。
background_down:
1)按下按钮时用于默认图形表示的按钮的背景图像。
2)background_down是StringProperty。
background_normal:
1)未按下按钮时用于默认图形表示的按钮的背景图像。
2)background_normal也是StringProperty边框:
1)用于BorderImage图形指令的Border。与background_normal和background_down一起使用。可以用于自定义背景。
2)它必须是四个值的列表:(底部, 右侧, 顶部, 左侧)。
3)border是ListProperty, 默认为(16, 16, 16, 16)
Kivy教程–通过示例学习Kivy。
以上所有属性的语法:
background_normal: 'normal.png'
background_down: 'down.png'
border: 30 , 30 , 30 , 30
Basic Approach:
-> import kivy
-> import kivy App
-> import button
-> set minimum version(optional)
-> Extend the class :
-> create an image a button
-> Do styling
-> Use the border property to round the corners of the button
-> Arrange call back if needed
-> Add and return a button
-> Run an instance of the class
有了这两个图像normal.png和down.png, 你可以开始添加圆形边框。
我们将在创建圆形按钮时使用以上2张图像。
以下是一段非常简单的代码, 我将尽力解释每件事。
边境财产–中的值边框:30、30、30、30告诉我们按钮边框的左侧, 右侧, 顶部, 底部有多少像素。如果给边框, 例如边框:150、150、150、150这将导致错误的行为, 原因是我们拾取的边框大于实际图像。
现在下面是实现我的方法的代码:
## Sample Python application demonstrating that
## how to create button corners round in kivy
##################################################
# import kivy module
import kivy
# this restrict the kivy version i.e
# below this kivy version you cannot
# use the app or software
kivy.require( "1.9.1" )
# base Class of your App inherits from the App class.
# app:always refers to the instance of your application
from kivy.app import App
# creates the button in kivy
# if not imported shows the error
from kivy.uix.button import Button
# this restrict the kivy version i.e
# below this kivy version you cannot
# use the app or software
kivy.require( '1.9.0' )
# to change the kivy default settings we use this module config
from kivy.config import Config
# 0 being off 1 being on as in true /false
# you can use 0 or 1 && True or False
Config. set ( 'graphics' , 'resizable' , True )
# class in which we are creating the imagebutton
class ButtonApp(App):
def build( self ):
# create a fully styled functional button
# Adding images normal.png and down.png
btn = Button(text = "Push Me !" , background_normal = 'normal.png' , background_down = 'down.png' , # Added the border property to round the corners of the button
border = 30 , 30 , 30 , 30 , size_hint = (. 3 , . 3 ), pos_hint = { "x" : 0.35 , "y" : 0.3 }
)
# Returning the button
return btn
# creating the object root for ButtonApp() class
root = ButtonApp()
# run function runs the whole program
# i.e run() method which calls the target
# function passed to the constructor.
root.run()
输出如下:
注意:小部件仍然是矩形。这意味着即使你单击圆角, 该按钮仍会接收该事件。
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
评论前必须登录!
注册