设为首页 加入收藏

TOP

wxpython 窗口排版- proportion/flag/border参数说明(一)
2017-09-30 16:56:20 】 浏览:4797
Tags:wxpython 窗口 排版 proportion/flag/border 参数 说明

新学习wxpython,一直纠结于窗口控件的排版,经过几天的查资料、试验,总结如下。

1、需求实例

来个实例,窗口有3行控件  

第一行是文本提示(大小不变,文字左对齐,控件居左)。 

第二行依次为文本提示(控件居左,大小不变,文字横向左对齐,文字纵向居中对齐,),文本输入框(控件居左,大小横向向右缩放,纵向不缩放),按钮(控件居右,右边固定,大小向左缩放),按钮(控件居右,大小不变)。

第三行多行文本框(控件扩展,大小四个方向扩展,直到占满剩余空间)

 

 

图1、窗口缩放前效果 

 

图2、窗口缩放后效果

2、代码 

# coding=utf-8

import wx

class MyFrame(wx.Frame):
     def  __init__(self, parent, id):
        wx.Frame. __init__(self, parent, id, u ' 测试面板Panel ', size = (400, 300))
    
         # 创建面板
        panel = wx.Panel(self) 
         # 创建open,save按钮
        self.bt_open = wx.Button(panel,label= ' open ')
        self.bt_save = wx.Button(panel,label= ' save ')
         # 创建文本,左对齐,注意这里style=wx.TE_LEFT,不是wx.ALIGN_LEFT  ,表示控件中的输入光标是靠左对齐。
        self.st_tips = wx.StaticText(panel ,0,u " 请输入文件路径 ",style=wx.TE_LEFT )
        self.st_tips2 = wx.StaticText(panel ,0,u " 文件路径: ",style=wx.TE_LEFT )
        self.text_filename = wx.TextCtrl(panel,style=wx.TE_LEFT)
         # 创建文本内容框,多行,垂直滚动条
        self.text_contents = wx.TextCtrl(panel,style=wx.TE_MULTILINE|wx.HSCROLL)
    
         # 添加容器,容器中控件按横向并排排列
        bsizer_top = wx.BoxSizer(wx.VERTICAL)
         # 添加容器,容器中控件按纵向并排排列
        bsizer_center = wx.BoxSizer(wx.HORIZONTAL)
        bsizer_bottom = wx.BoxSizer(wx.HORIZONTAL)
        
         # 在容器中添加st_tips控件,proportion=0 代表当容器大小变化时,st_tips控件的大小不变
         # flag = wx.EXPAND|wx.ALL中,wx.ALL代表在st_tips控件四周都增加宽度为x的空白,x取border参数的值,本例是border=5
         #  wx.EXPAND代表st_tips控件占满可用空间。
        bsizer_top.Add(self.st_tips,proportion=0,flag=wx.EXPAND|wx.ALL, border = 5 )
         # proportion=1 代表当容器大小变化时,st_tips2控件的大小变化,变化速度为1
        bsizer_center.Add(self.st_tips2,proportion=0,flag=wx.ALL|wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LE
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python魔法方法-属性转换和类的表.. 下一篇CoolPlist 帧动画自动生成工具

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目