首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏小点点

    (九)Python GUI的基本框架

    目录 基本框架 组件 事件处理机制  GUI常用组件 按钮 菜单 菜单常用事件 静态文本和文本框 列表 单选与复选框   布局管理  sizer 使用sizer的步骤 其他GUI库 PyQt Tkinter – 每个sizer有自己的定位策略  开发者只需要选择合适策略的sizer将窗口组件放入,并且指定好需求即可  sizer  sizer本身不是一个容器或一个窗口组件。 它只是一个屏幕布局的算法  sizer允许嵌套  wxPython常用的sizer – wx.BoxSizer(在一条线上布局子窗口部件) – wx.FlexGridSizer(行高和列宽由最大的组件决定 ) – wx.GridSizer(所有组件大小一致, 固定一个方向,在 另外一个方向生长) – wx.GridBagSizer 使用sizer的步骤 创建自动调用尺寸的容器,例如panel 创建sizer 创建子窗口(窗体组件) 使用sizer的Add()方法将每个子窗口添加给sizer  调用容器的SetSizer(sizer)方法 具体代码如下所示: import wx class Frame1

    2.4K30编辑于 2022-12-12
  • 来自专栏小徐学爬虫

    在另一个进程正在进行时如何显示加载进度条?

    = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.progress, 0, wx.EXPAND) self.SetSizer(sizer)​ btn = wx.Button(panel, label="Start Thread") btn.Bind(wx.EVT_BUTTON, self.onButton)​ sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(btn, 0, wx.ALL|wx.CENTER, 5) panel.SetSizer(sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.progress, 0, wx.EXPAND) self.SetSizer(sizer)​ = wx.BoxSizer(wx.VERTICAL) sizer.Add(btn, 0, wx.ALL|wx.CENTER, 5) panel.SetSizer(sizer

    86700编辑于 2025-02-11
  • 来自专栏小徐学爬虫

    Python和Matplotlib无法绘图问题的解决方案

    for the panel content self.sizer = wx.GridBagSizer(1, 1) self.sizer.Add(self.button, ( for the panel content self.sizer = wx.GridBagSizer(2, 2) self.sizer.Add(self.tittle, ( 1, 3)) self.sizer.Add(self.lblt, (3, 1)) self.sizer.Add(self.resultt, (3, 2)) self.sizer.Add (self.lbls, (4, 1)) self.sizer.Add(self.results, (4, 2)) self.SetSizer(self.sizer)​class 1, 3)) self.sizer.Add(self.lblt, (3, 1)) self.sizer.Add(self.resultt, (3, 2)) self.sizer.Add

    59910编辑于 2025-01-08
  • 来自专栏Hcode网站

    Python3可视化爬取教务系统实现查询功能

    self.MaxSize = self.Size self.MinSize = self.Size panel = wx.Panel(self, -1) sizer = wx.BoxSizer(wx.HORIZONTAL) sizer1 = wx.BoxSizer(wx.VERTICAL) sizer3 = wx.BoxSizer( sizer.Add(sizer1, flag=wx.EXPAND | wx.ALL, border=20) sizer.Add(sizer3, flag=wx.EXPAND = wx.BoxSizer(wx.HORIZONTAL) sizer1 = wx.BoxSizer(wx.VERTICAL) sizer3 = wx.BoxSizer( sizer.Add(sizer1, flag=wx.EXPAND | wx.ALL, border=20) sizer.Add(sizer3, flag=wx.EXPAND

    1.1K20发布于 2020-07-14
  • 来自专栏科控自动化

    运动控制选型配置要点

    如果Sizer提供的机械系统模型能够匹配我们设计的机器系统,那么将负载参数输入到Sizer软件可以得到负载的转动惯量(具体可以参考:Sizer伺服驱动滚珠丝杠选型示例)。 图4 Sizer中常见机械系统 Sizer软件可以根据“梯形/三角形曲线”输入运行曲线的方式,通过指定运行距离,运行时间和加减速时间,由 Sizer 软件计算出运行速度和加减速度,如图5所示。 图5 Sizer运行曲线规划 对于不规则的运行曲线,Sizer也支持自定义曲线(根据时间间隔和速度),支持从Excel表格直接复制,如图6所示。 Sizer软件的下载地址、软件简介及选型示例如下: 1、Sizer软件的下载链接如下: https://support.industry.siemens.com/cs/document/54992004 /sizer-for-siemens-drives?

    1.2K20编辑于 2022-04-19
  • 来自专栏ATYUN订阅号

    用wxPython打造Python图形界面

    分级器(动态分级) wxPython工具包包括用于创建动态布局的sizer。它们为你管理小部件的位置,并在你调整应用程序窗口大小时对其进行调整。 其他GUI工具包将sizer称为布局,PyQt就是这样做的。 拳击手,并将其传递给wx.vertical,这是将小部件添加到sizer的方向。 在本例中,小部件将垂直添加,这意味着它们将依次从上到下逐个添加。 要将小部件添加到sizer,你将使用. add()。 wx.all标志告诉wxpython要在小部件的所有边上添加边框,而wx.expand使小部件在sizer中尽可能地展开。

    2.7K20发布于 2019-05-13
  • 来自专栏全栈程序员必看

    wxPython入门中文版 (Getting Started with wxPython)

    Sizers 作为wx.Sizer 的子类,Sizer 能够被用来在 frame 或 window 中布置可见元素。 或者 sizer.AddMany(...) 来给出一个wx.Window 对象的列表,sizer 就能够布置它们. ,因为它的父 sizer self.sizer 是按照垂直线来布置元素的。 wx.Sizer 和它的子类有一个可能会让人感到困惑的地方,就是 sizer 和父窗口之间的区别。当你把一个对象添加到 sizer 里面时,不需要指定这个对象的父窗口。 一旦你完成可见元素的设置,并把它们加入到 sizer(或者嵌套的 sizer),下一步就是告诉 frame 或 window 来使用 sizer

    7.1K30编辑于 2022-08-31
  • 来自专栏科控自动化

    [大佬]运动控制1.运动控制选型配置要点

    如果Sizer提供的机械系统模型能够匹配我们设计的机器系统,那么将负载参数输入到Sizer软件可以得到负载的转动惯量(具体可以参考:Sizer伺服驱动滚珠丝杠选型示例)。 图4 Sizer中常见机械系统 Sizer软件可以根据“梯形/三角形曲线”输入运行曲线的方式,通过指定运行距离,运行时间和加减速时间,由 Sizer 软件计算出运行速度和加减速度,如图5所示。 图5 Sizer运行曲线规划 对于不规则的运行曲线,Sizer也支持自定义曲线(根据时间间隔和速度),支持从Excel表格直接复制,如图6所示。 Sizer软件的下载地址、软件简介及选型示例如下: 1、Sizer软件的下载链接如下: https://support.industry.siemens.com/cs/document/54992004 /sizer-for-siemens-drives?

    1.7K11编辑于 2022-03-29
  • 来自专栏ATYUN订阅号

    用wxPython打造Python图形界面

    ), 0, wx.ALL, 5) 42 43 self.main_sizer.Add(btn_sizer, 0, wx.CENTER) 44 45 self.SetSizer 接下来,你可以创建要使用的sizer和小部件。 (label, 0, wx.ALL, 5) 10 11 row_sizer.Add(text_ctrl, 1, wx.ALL | wx.EXPAND, 5) 12 13 self.main_sizer.Add (row_sizer, 0, wx.EXPAND) 14 add_widgets()接受标签的文本和文本控件实例。 通过将sizer彼此嵌套,可以设计复杂的应用程序。

    2.3K30发布于 2019-05-13
  • 来自专栏bit哲学院

    python实现的摩斯电码解码\编码器

    = wx.BoxSizer (wx.HORIZONTAL )         self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)         self.sizer2. Add(encoderButton, 1, wx.EXPAND)         self.sizer2.Add(decoderButton, 1, wx.EXPAND)         self.sizer = wx.BoxSizer(wx.VERTICAL)         self.sizer.Add(self.sizer0, 0, wx.EXPAND)         self.sizer.Add( self.contents, 1, wx.EXPAND)         self.sizer.Add(self.coder, 1, wx.EXPAND)         self.sizer.Add( self.sizer2, 0, wx.EXPAND)         self.SetSizer(self.sizer)         self.SetAutoLayout(1)         self.sizer.Fit

    1.1K00发布于 2021-01-01
  • 来自专栏TalkPython

    如何使用wxPython构建一个GUI应用程序

    title='Hello World') # 创建面板 panel = wx.Panel(self) # 声明一个垂直尺寸的容器 my_sizer 上添加输入框 self.text_ctrl = wx.TextCtrl(panel) # 为该容器添输入框加组件,从左往右,从上到下,边框为5 my_sizer.Add # 为按钮绑定点击事件 close_btn.Bind(wx.EVT_BUTTON, self.on_close) # 为该容器添按钮组件 my_sizer.Add (my_btn, 0, wx.ALL | wx.CENTER, 5) my_sizer.Add(close_btn,0,wx.ALL | wx.CENTER, 5) # 设置主尺寸 panel.SetSizer(my_sizer) self.Show() # 为按钮添加一个事件 def on_press(self,

    3.1K20发布于 2019-05-24
  • 使用 Toggle 按钮停止循环

    self.timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.onUpdate, self.timer)​ sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.slider, 0, wx.ALL, 5) sizer.Add(self.toggle, 0, wx.ALL, 5) self.SetSizer(sizer)​ def onScroll(self, event): value = self.slider.GetValue ") self.toggle.Bind(wx.EVT_TOGGLEBUTTON, self.onToggle)​ self.running = False​ sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.slider, 0, wx.ALL, 5) sizer.Add(self.toggle,

    1.1K10编辑于 2024-08-06
  • 来自专栏小徐学爬虫

    wxPython 中的动态内容与布局管理

    __init__(None, title="动态布局")​ self.sizer = wx.BoxSizer(wx.VERTICAL)​ self.btn_add = wx.Button (self, label="添加") self.btn_add.Bind(wx.EVT_BUTTON, self.on_add) self.sizer.Add(self.btn_add wx.Button(self, label="删除") self.btn_delete.Bind(wx.EVT_BUTTON, self.on_delete) self.sizer.Add (self.btn_delete, 0, wx.ALL, 5)​ self.controls = []​ self.SetSizer(self.sizer)​ def self, event): text_ctrl = wx.TextCtrl(self) self.controls.append(text_ctrl) self.sizer.Add

    82010编辑于 2024-03-06
  • 来自专栏mySoul

    canvas 绘制贪吃蛇游戏

    10)]; } } } } // 实物,苹果类 class Apple{ // 列 col; // 行 row; sizeR / 生成行坐标 this.row = Math.floor(Math.random() * (40 - 1) + 1); // 设置苹果半径 this.sizeR Red"; // 画苹果 context.beginPath(); // 圆心坐标 context.arc(this.col * this.sizeR * 2 + this.sizeR, this.row * this.sizeR * 2 + this.sizeR, this.sizeR, 0, Math.PI * 2, false);

    1.4K20发布于 2019-02-14
  • 来自专栏算法修养

    LeetCode 327. Count of Range Sum(线段树)

    class Solution { public: _int* l[10005*17]; _int* r[10005*17]; int sizel[10005*17]; int sizer ; } } return lena+lenb; } void pushup(int node) { sizer [node]=fun(node,r[node<<1],sizer[node<<1],r[node<<1|1],sizer[node<<1|1],node<<1|1,r[node]); sizel ; for(int i=0;i<len;i++) { int pos2 = upper_bound(r[node<<1],r[node<<1]+sizer _int{num[start]}; sizel[node]=1; r[node]=new _int{num[start]}; sizer

    1.2K00发布于 2020-03-16
  • 来自专栏小徐学爬虫

    用wx.wizard实现一个进度条

    __init__(self, parent) self.sizer = wx.BoxSizer(wx.VERTICAL) self.text = wx.StaticText( __init__(self, parent) self.sizer = wx.BoxSizer(wx.VERTICAL) self.status = wx.StaticText self, -1, "This is the Second Page") self.gauge = wx.Gauge(self, -1, name="Guage")​ self.sizer.Add (self.status, 0, wx.ALIGN_CENTER | wx.ALL, 5) self.sizer.Add(self.gauge, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL | wx.ALL, 10) self.SetSizer(self.sizer)​ self.gauge_pos

    23310编辑于 2024-11-11
  • 来自专栏信数据得永生

    BackTrader 中文文档(十一)

    Sizer实例。 签名如下: def setsizer(self, sizer): 接受一个已实例化的Sizer def getsizer(self): 返回当前的Sizer实例 sizer是可以直接get self.sizer = self.p.sizer` 例如,这将允许在与cerebro调用发生在同一级别的Sizer并将其作为参数传递给系统中的所有策略,从而有效地实现共享Sizer Sizer开发 实际 Sizer 应用 在不考虑复杂的大小算法的情况下,可以使用两个不同的 Sizer 将策略从单向变为双向。只需在 cerebro 执行中更改 Sizer,策略就会改变行为。 bt.Sizer 参考 类 backtrader.Sizer() 这是Sizers的基类。

    1.5K00编辑于 2024-05-24
  • 来自专栏小徐学爬虫

    如何在wxPython GUI中使用BoxSizers实现整齐布局

    我还尝试过这样做,并且还将每个文本和输入配对放在一个Sizer中,结果更糟。有什么建议吗? __init__(self, None, wx.ID_ANY, "Tutorial")​ # create the main sizer self.mainSizer = wx.BoxSizer = wx.StaticText(self.panel, label=text, size=lblSize) txt = wx.TextCtrl(self.panel)​ sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.Add(lbl, 0, wx.ALL|wx.ALIGN_LEFT, 5) sizer.Add(txt, 0, wx.ALL, 5) self.mainSizer.Add(sizer)​# Run the programif __name__ == "__main__": app =

    70210编辑于 2024-08-06
  • 来自专栏小徐学爬虫

    Python GUI 库跨平台兼容问题及解决方案

    event to a function button.Bind(wx.EVT_BUTTON, self.on_click)​ # Set the layout sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(text, 0, wx.ALL, 5) sizer.Add(button, 0, wx.ALL, 5) panel.SetSizer(sizer)​ # Show the frame self.Show()​ def on_click(self, event

    82210编辑于 2024-06-11
  • 来自专栏AI科技大本营的专栏

    wxPython:Python首选的GUI库 | CSDN博文精选

    更多的时候,我们使用被称为布局管理器的 wx.Sizer 来实现动态布局。wx.Sizer 有很多种,我记不住,所以只喜欢用 wx.BoxSizer,最简单的一种布局管理器。 , 0) sizer_arrow.Add(sizer_arrow_mid, 0, wx.TOP|wx.BOTTOM, 1) sizer_arrow.Add(btn_down , 0, wx.ALIGN_CENTER|wx.ALL, 0) sizer_right = wx.BoxSizer(wx.VERTICAL) sizer_right.Add sizer_right.Add(tc, 1, wx.ALL, 10) sizer_max = wx.BoxSizer() sizer_max.Add(preview, 1, wx.EXPAND|wx.LEFT|wx.TOP|wx.BOTTOM, 5) sizer_max.Add(sizer_right, 0, wx.EXPAND|wx.ALL, 0)

    3.4K11发布于 2019-11-12
领券