大型网站开发技术,广告设计在线,永久免费的cad软件,网红营销对消费者行为的影响python借助wxFormBuilder工具搭建基础的GUI界面—wxFormBuilder工具使用介绍#xff1a;https://blog.csdn.net/Logintern09/article/details/126685315
布局四#xff1a;面板拼接式#xff0c;先Panel面板构图#xff0c;再使用程序代码在Frame框架上拼接面板 下面讲一下…python借助wxFormBuilder工具搭建基础的GUI界面—wxFormBuilder工具使用介绍https://blog.csdn.net/Logintern09/article/details/126685315
布局四面板拼接式先Panel面板构图再使用程序代码在Frame框架上拼接面板 下面讲一下怎么实现Frame拼接不同面板的。
生成基础的panel模型
wxFormBuilder工具添加一个面板在面板上继续添加想要的控件将自动生成的python代码拷贝到Pycharm编辑器的某个命名的.py文件中。
面板上添加的基础控件如下 wxFormBuilder工具自动生成的python代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO NOT EDIT THIS FILE!
###########################################################################import wx
import wx.xrc###########################################################################
## Class MyPanel
###########################################################################class MyPanel(wx.Panel):def __init__(self, parent):wx.Panel.__init__(self, parent, idwx.ID_ANY, poswx.DefaultPosition, sizewx.Size(500, 300),stylewx.TAB_TRAVERSAL)bSizer wx.BoxSizer(wx.VERTICAL)self.m_slider wx.Slider(self, wx.ID_ANY, 50, 0, 100, wx.DefaultPosition, wx.DefaultSize,wx.SL_INVERSE | wx.SL_VERTICAL)bSizer.Add(self.m_slider, 0, wx.ALL, 5)self.m_checkBox wx.CheckBox(self, wx.ID_ANY, uCheck Me!, wx.DefaultPosition, wx.DefaultSize, 0)bSizer.Add(self.m_checkBox, 0, wx.ALL, 5)self.m_staticText wx.StaticText(self, wx.ID_ANY, uMyLabel, wx.DefaultPosition, wx.DefaultSize, 0)self.m_staticText.Wrap(-1)bSizer.Add(self.m_staticText, 0, wx.ALL, 5)m_comboBoxChoices []self.m_comboBox wx.ComboBox(self, wx.ID_ANY, uCombo!, wx.DefaultPosition, wx.DefaultSize, m_comboBoxChoices,0)bSizer.Add(self.m_comboBox, 0, wx.ALL, 5)self.SetSizer(bSizer)self.Layout()def __del__(self):pass
Frame拼接Panel
原Panel类初始化
class MyPanel(wx.Panel):def __init__(self, parent):wx.Panel.__init__(self, parent, idwx.ID_ANY, poswx.DefaultPosition, sizewx.Size(500, 300),stylewx.TAB_TRAVERSAL)将面板类的位置pos、尺寸size、风格style参数作为面板类的实例属性变形后
class MyPanel(wx.Panel):def __init__(self, parent, idwx.ID_ANY, poswx.DefaultPosition, sizewx.Size(500, 300),stylewx.TAB_TRAVERSAL):wx.Panel.__init__(self, parent, id, pos, size, style)Frame拼接Panel
class MyFrame(wx.Frame):def __init__(self):wx.Frame.__init__(self, None, id-1, titleu, pos(200, 200),size(600, 600), stylewx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)self.Center()self.my_panel MyPanel(self, id-1, pos(0, 0), sizewx.Size(200, 300), stylewx.TAB_TRAVERSAL)Frame上拼接多个Panel模型
窗口Frame上并排的拼接多个Panel模型可以通过函数自动设置Panel放置在Frame上的位置来实现。将整个Frame看成是二维坐标轴的话那么Frame的左上角是坐标0,0。 def set_panel_dict(self):self.panel_dict dict()init_length, init_width self.canset_panel.GetSize()panel_width 500for i in range(len(item_list)):panel_pos (self.panel_length * i, init_width)self.panel_dict[item_list[i]] frameset_panel(self, id-1, pospanel_pos,sizewx.Size(self.panel_length, panel_width), stylewx.TAB_TRAVERSAL)
参考文章
python GUI图形化编程-wxpython(2)-使用panel面板
wx.BoxSizer布局管理https://blog.csdn.net/igolang/article/details/9397175