1. 引入依赖模块

主窗体大小的控制,需要使用到kivy.core.window中的Window模块

 from kivy.app import App
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button

2. 简单的布局

直接使用代码布局,一个BoxLayout中加入一个Button

class MainApp(App):
def build(self):
root = BoxLayout(orientation='vertical')
btn = Button(size_hint=(None, None), width=50, height=50, text='btn')
root.add_widget(btn)
return root if __name__ == '__main__':
MainApp().run()

程序运行之后,就会全屏显示,效果如图,可见kivy的坐标原点是在左下角

3. 不全屏[自定大小]

要让程序主窗体不全屏显示,并认为指定宽高的话,可以通过Windowfullscreensize来配置,效果如下:

 class MainApp(App):
def build(self):
# 设置窗体不全屏
Window.fullscreen = False
# 指定初始化后的主窗体大小,但是程序运行后,还是动态地改变大小
Window.size = (360, 240)
root = BoxLayout(orientation='vertical')
btn = Button(size_hint=(None, None), width=50, height=50, text='btn')
root.add_widget(btn)
return root

4. 固定窗体大小

窗体大小的固定,需要在kivy.config.Config类中配置,所以需要引入改模块,效果如下,可以看到最大化额按钮变成灰色,而且窗体大小不可调。

 from kivy.config import Config
Config.set('graphics','resizable', False) # 窗体可变设置为False

5. 窗体最小size

一般我们不会固定窗体的大小值,而是设置窗体的最小值,以防止布局美观。要做到这种效果,需要使用Window的是minimum_widthminimum_height属性。

 Window.minimum_width, Window.minimum_height = 360, 240

效果如下:

6. 总结

  • 窗体的设置主要涉及的类:kivy.core.window.Windowkivy.config.Config

  • 其实上面还漏掉了一个功能,就是将窗体的边框去掉,这个需要使用到kivy.core.window.Window.borderless属性,将其设置为True即可去掉窗体边框。但是这个不是本章说的重点。这个属性需要和拖拽行为结合使用。

Kivy主窗体大小的控制的更多相关文章

  1. Delphi子窗体随主窗体大小而变化

    当然办法有很多种,我建议用TRzsplitter更好点, TRzsplitter分割,在其上边放置panel,然后把align置为alClient,则可以随着主窗体的大小而一起变动 选中此控件右键ed ...

  2. C#设置窗体中的窗体随主窗体大小变化而变化

    form2 f=new form2(); f.Size=this.Size; f.Location=this.Location; f.showdialog(); 作者:耑新新,发布于  博客园 转载请 ...

  3. Chapter 11. Frame, MainWindow, and Toplevel Widgets 框架,主窗体,顶级部件

    Chapter 11. Frame, MainWindow, and Toplevel Widgets   框架,主窗体,顶级部件 框架和Toplevels 都是设计用于其他部件的容器. 它们的不同在 ...

  4. windows程序里新窗体不在任务栏显示,无标题拖动,键盘事件,始终显示在主窗体上面,单实例运行等

    不显示在任务栏,Alt+Tab也不显示 protected override CreateParams CreateParams { get { const int WS_EX_APPWINDOW = ...

  5. 主窗体里面打开子窗体&&打印饼图《Delphi 6数据库开发典型实例》--图表的绘制

    \Delphi 6数据库开发典型实例\图表的绘制 1.在主窗体里面打开子窗体:ShowForm(Tfrm_Print); procedure Tfrm_Main.ShowForm(AFormClass ...

  6. Winform 主窗体更换 构造函数传值

    制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...

  7. Winform主窗体的设置

    软件必然涉及到一个主窗体MainForm,下面介绍一下几个简单的属性设置,可能比较有用 (1)icon,当然是咱们软件的图标了,设置上去即可 (2)isMdiContainer,这个比较重要了哦,必须 ...

  8. NSIS:使用nsWindows.nsh头文件调整窗体大小

    原文 NSIS:使用nsWindows.nsh头文件调整窗体大小 此方法只能简单实现调整窗体大小,但不完美,调整后窗体上其他的控件都需要调整大小或位置,比较麻烦,轻狂不建议使用呵! ;加头文件!inc ...

  9. PyQt:无边框自定义标题栏及最大化最小化窗体大小调整

    环境 Python3.5.2 PyQt5 陈述 隐藏掉系统的控制栏,实现了自定义的标题控制栏,以及关闭/最大化/最小化的功能,自由调整窗体大小的功能(跟随一个大佬学的),代码内有详细注释 只要把Mai ...

随机推荐

  1. 基于 react 的Java web 应用—— 组件复用(后续需更新)

    前言 实习第二周,被告知要用React与导师进行基于React的Javaweb 的开发,jinzhangaaaaa~由于React 这款框架没学过,看了一峰老师的基础入门教程,硬着头皮开始上了... ...

  2. CF--思维练习--CodeForces - 220C Little Elephant and Shifts (STL模拟)

    ACM思维题训练集合 The Little Elephant has two permutations a and b of length n, consisting of numbers from ...

  3. CF1335E Three Blocks Palindrome

    就是我这个菜鸡,赛时写出了 E2 的做法,但是算错复杂度,导致以为自己的做法只能AC E1,就没交到 E2 上,然后赛后秒A..... 题意 定义一种字串为形如:\([\underbrace{a, a ...

  4. P3588 【[POI2015]PUS】(线段树优化建边)

    P3588 [[POI2015]PUS] 终于有个能让我一遍过的题了,写篇题解纪念一下 给定长度为n的序列和其中部分已知的数,还有m个大小关系:区间\([l,r]\)中,有k个给定的数比剩下的\(r- ...

  5. bzoj4318 OSU!和bzoj 3450 Tyvj1952 Easy

    这俩题太像了 bzoj 3450 Tyvj1952 Easy Description 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有n次点 ...

  6. python(logging 模块)

    1.logging 模块的日志级别 DEBUG:最详细的日志信息,典型应用场景是 问题诊断 INFO:信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作 ...

  7. DNS 处理模块 dnspython

    简介: dnspython (http://www.dnspython.org/)是Python实现一个DNS的工具包,支持所有的记录类型,可以用于查询.传输并动态更新ZONE信息. 安装 wget ...

  8. SpringBoot集成Quartz实现定时任务

    1 需求 在我的前后端分离的实验室管理项目中,有一个功能是学生状态统计.我的设计是按天统计每种状态的比例.为了便于计算,在每天0点,系统需要将学生的状态重置,并插入一条数据作为一天的开始状态.另外,考 ...

  9. Dreamoon Likes Coloring(模拟+构造)

    \(这题刚好撞到我的思路了,但是因为模拟......我看了几十遍测试数据....\) $首先当\sum_^m$小于n时一定无解 大于呢?那我们就要浪费一些区间(覆盖一些点,也就是多出来的点) 但是又不 ...

  10. 记一次sqoop安装后测试的问题

    运行命令: sqoop import --connect "jdbc:mysql://x.x.x.x:3306/intelligent_qa_bms?useUnicode=true& ...