具体使用见页面:http://www.yiibai.com/wxpython/wxpython_drawing_api.html

组件容器(Containers)-用于容纳其他组件

例如:wx.Panel
动态组件(Dynamic Widgets)-可以被用户编辑
例如:wx.Button,wx.TextCtrl,wx.ListBox
静态组件(Static Widgets)-显示信息用,不能被用户编辑
例如:wx.StaticBitmap,wx.StaticText,wx.StaticLine

其他组件:

在窗体中显示hello world

import wx
class Frame1(wx.Frame):def __init__(self,parent,title):wx.Frame.__init__(self, parent, title = title, pos = (100,200), size = (200,100))#容纳其他组件的容器panel = wx.Panel(self)text1 = wx.TextCtrl(panel, value = "Hello, World!", size = (200,100))self.Show(True)
if __name__ == '__main__':#创建一个应用程序对象,用于消息循环app = wx.App()#创建一个窗体frame = Frame1(None, "Example")app.MainLoop()

在窗体中抬起左键可以创建Hello World

import wx
class Frame1(wx.Frame):def __init__(self,parent):wx.Frame.__init__(self, parent=parent, title='Example', pos=(100, 200), size=(200, 100))self.panel = wx.Panel(self)#鼠标左键抬起时触发时间绑定带OnClick函数self.panel.Bind(wx.EVT_LEFT_UP, self.OnClick)def OnClick(self,event):posm=event.GetPosition()wx.StaticText(parent=self.panel,label='Hello World',pos=(posm.x,posm.y))
if __name__ == '__main__':app = wx.App()frame = Frame1(None)frame.Show()app.MainLoop()

使用sizer来布局组件

sizer本身是不是一个容器或一个窗体部件,只是一个屏幕布局算法
sizer允许嵌套

使用sizer的步骤:
(1)创建自动调用尺寸的容器,例如panel
(2)创建sizer
(3)创建子窗体(窗体部件)
(4)使用sizer的Add()方法将每个子窗体添加给sizer
(5)调用容器的SetSizer方法

点击button输出一行hello world

import wx
class Frame1(wx.Frame):def __init__(self,parent):wx.Frame.__init__(self, parent=parent, title='Example')self.panel = wx.Panel(self)sizer=wx.BoxSizer(wx.VERTICAL)#采用多行显示self.text1=wx.TextCtrl(self.panel,value='Hello World\n',style=wx.TE_MULTILINE)#1为响应容器改变大小,expand占据窗口的整个宽度sizer.Add(self.text1,1,wx.ALIGN_TOP|wx.EXPAND)self.button=wx.Button(self.panel,label='click')self.Bind(wx.EVT_BUTTON,self.OnClick,self.button)sizer.Add(self.button)self.panel.SetSizerAndFit(sizer)self.panel.Layout()#响应button事件def OnClick(self,event):self.text1.AppendText('Hello World\n')if __name__ == '__main__':app = wx.App()frame = Frame1(None)frame.Show()app.MainLoop()

输出单选按钮的内容到文本框

import wx
class Frame1(wx.Frame):def __init__(self,parent):wx.Frame.__init__(self, parent=parent, title='Example',size=(300,300))self.panel = wx.Panel(self)lblList = ['Value X', 'Value Y', 'Value Z']self.rbox = wx.RadioBox(self.panel, label='RadioBox', pos=(0, 20), choices=lblList,majorDimension=1, style=wx.RA_SPECIFY_ROWS)self.rbox.Bind(wx.EVT_RADIOBOX, self.onRadioBox)self.button=wx.Button(self.panel,label='button',pos=(0,100))self.Bind(wx.EVT_BUTTON,self.onclick)self.text1=wx.TextCtrl(self.panel,style=wx.TE_MULTILINE,pos=(0,150),size=(300,50))def onclick(self,event):self.text1.AppendText(self.rbox.GetStringSelection())def onRadioBox(self, e):print(self.rbox.GetSelection())
if __name__ == '__main__':app = wx.App()frame = Frame1(None)frame.Show()app.MainLoop()

综合使用(股票注释项目主框架):

import wx
import os
import re
class Frame1(wx.Frame):def __init__(self,parent):wx.Frame.__init__(self, parent=parent, title='注释股票代码',size=(380,250))self.panel = wx.Panel(self)self.text1 = wx.TextCtrl(self.panel, pos=(30, 20), size=(200, 25))self.btnO = wx.Button(self.panel, label="选择文件路径", pos=(255, 20), size=(90, 25))# 一组单选lblList = ['注释单一文件', '注释文件夹下所有文件']self.rbox = wx.RadioBox(self.panel, label='运行方式', pos=(30, 60) ,choices=lblList,majorDimension=1, style=wx.RA_SPECIFY_ROWS)self.btnS = wx.Button(self.panel, label="运行", pos=(130, 150), size=(70, 25))# 绑定事件self.btnS.Bind(wx.EVT_BUTTON,self.OnClick)self.btnO.Bind(wx.EVT_BUTTON,self.OnOpenFile)# 设置窗口标题的图标self.icon = wx.Icon('123.ico', wx.BITMAP_TYPE_ICO)self.SetIcon(self.icon)def OnOpenFile(self,event):#根据单选的索引执行if self.rbox.GetSelection() == 1:#选择文件夹对话框self.dlgd=wx.DirDialog(self, u"选择文件夹", style=wx.DD_DEFAULT_STYLE)#如果确定了选择的文件夹,将文件夹路径写到text1控件if self.dlgd.ShowModal() == wx.ID_OK:self.text1.AppendText(self.dlgd.GetPath())else:# 选择文件对话框,设置选择的文件必须为txt格式self.dlg = wx.FileDialog(self, message=u"选择文件", style=wx.FD_OPEN | wx.FD_CHANGE_DIR,wildcard="Text Files (*.txt)|*.txt")# 如果确定了选择的文件,将文件路径写到text1控件if self.dlg.ShowModal() == wx.ID_OK:self.text1.AppendText(self.dlg.GetPath())def OnClick(self,event):# 判断text1的文本框内容是否为空if self.text1.GetValue() == "":wx.MessageBox("请先设定需要注释的文件或文件夹路径", "提示消息", wx.OK | wx.YES_DEFAULT)returnif self.rbox.GetSelection() == 0:# 设置选择的文件必须为txt格式self.dlgx = wx.FileDialog(self, message=u"另存为", style=wx.FD_OPEN | wx.FD_CHANGE_DIR,wildcard="Text Files (*.txt)|*.txt")if self.dlgx.ShowModal() == wx.ID_OK:self.RunSingalFile()else:self.dlgdx = wx.DirDialog(self, u"另存为", style=wx.DD_DEFAULT_STYLE)if self.dlgdx.ShowModal() == wx.ID_OK:self.RunOneFolder()def RunSingalFile(self):self.msg1 = wx.MessageDialog(parent=None, message="运行成功!(是否打开输出文件)", caption="提示消息",style=wx.YES_NO | wx.ICON_INFORMATION)# 如果选择“是”,startfile用来打开一个文件或者文件夹(像日常双击一样的效果)if self.msg1.ShowModal() == wx.ID_YES:os.startfile(self.dlgx.GetPath())def RunOneFolder(self):self.msg2 = wx.MessageDialog(parent=None, message="运行成功!(是否打开输出文件夹)", caption="提示消息",style=wx.YES_NO | wx.ICON_INFORMATION)if self.msg2.ShowModal() == wx.ID_YES:os.startfile(self.dlgdx.GetPath())if __name__ == '__main__':app = wx.App()frame = Frame1(None)frame.Show()app.MainLoop()

python wxpython常用控件实例相关推荐

  1. wxpython制作表格界面_[Python] wxPython 菜单栏控件学习总结(原创)

    1.总结 1.大体创建过程 1.创建一个 菜单栏 : menuBar = wx.MenuBar() 相当于这个白色地方,没有File这个菜单 2.创建 菜单 : fileMenu = wx.Menu( ...

  2. [Python] wxPython 基本控件 (转)

    转自:http://www.cnblogs.com/wangjian8888/p/6028777.html 一.静态文本控件 wx.StaticText(parent, id, label, pos= ...

  3. wxpython日期控件_[Python] wxPython 基本控件 (转)

    wx.StaticText(parent, id, label, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, name="st ...

  4. python entry_tkinter常用控件演示(Entry)

    Entry是 tkinter 中比较常用的控件,它通常用来接收字符串的输入,这个控件使得用户可以输入编辑一行文字:如果输入文字过长(超过Entry的可显示宽度),文字便会自动向后滚动,这种情况下没法在 ...

  5. Python Tkinter 常用控件空间位置摆放

    几何管理 Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,以下是Tkinter公开的几何管理类:包.网格.位置. from Tkinter import*#初始化Tk() myWin ...

  6. Python DearPyGui 常用控件二

    增量时间与内部时钟 Dear PyGui 有一个内置的时钟,用于检查应用程序运行的总时间 get_total_time,该时间以秒为单位.通过 get_delta_time() 方法,我们可以检查渲染 ...

  7. Python DearPyGui 常用控件一

    菜单栏 菜单栏是一个 GUI 应用中重要的控件,始终显示在窗口顶部,并具有三个主要部分: menu_bar -- 主菜单功能区 menu -- 下拉菜单或子菜单 add_menu_item -- 可以 ...

  8. wxPython第四篇、Choice、MessageDialog控件实例讲解

    wxPython第四篇.Choice.MessageDialog控件实例讲解 前言: ​ wxPython有很多控件例如Button.CheckBox.StaticText.ListBox 等等(an ...

  9. VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)

    上一节VS2010/MFC编程入门教程中鸡啄米讲了按钮控件Button.Radio Button和Check Box的基本用法,本节就继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件 ...

  10. VS2019/MFC编程入门之常用控件:按钮控件的编程实例

    上一节VS2010/MFC编程入门教程中讲了按钮控件Button.Radio Button和Check Box的基本用法,本节就继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件开发中 ...

最新文章

  1. 只会python好找工作吗-转行去培训班学Python好找工作吗?老男孩教育
  2. ALV中调用Excel, 丢掉前面的0问题解决
  3. 理解 Azure 平台中虚拟机的计算能力
  4. 【Docker】安装tomcat并部署应用
  5. 如何在MyEclipse上耍Chrome
  6. navicat premium使用教程 Navicat Premium mac的基本使用
  7. 提高JQ效率的一些建议
  8. 《Shell脚本学习指南》笔记--2011-12-17
  9. 左耳朵耗子:Serverless 究竟是什么?
  10. cad黑色背景变成白色_CAD操作记不全?看这个就够了!附上全面整理,动图教程-深圳造价培训...
  11. C++题解:矩阵快速幂 求 斐波那契数列
  12. Java修改图片格式
  13. 什么是软件测试?进行软件测试的目的是什么?
  14. Git patch的使用方法和场景
  15. python实现词云且更换背景图片
  16. 爱快路由器使用L2TP线路做出口
  17. 易經大意(6) 三和 韓長庚 著
  18. adb进阶知识,如何过滤只查看某一个app的日志
  19. 干货!!史上最全Java学习视频
  20. redis设置密码并修改查看的几种方式

热门文章

  1. 软件开发项目过程管理文档
  2. 用python实现简单的好友管理系统
  3. vue项目多主题风格切换(适配暗黑模式)
  4. pc 浏览器最小字体12px
  5. 长ping命令返回结果输出为文本
  6. 联想拯救者Y9000P安装ubuntu22.04和安装anaconda教程
  7. nunito字体_外贸网站设计中字体有多重要?
  8. 【记录】Optisystem运行卡死,无法点击关闭、输入变量数值等问题解决方法
  9. 使用js进行智慧树刷课
  10. 经典而常用的配乐和背景音乐合集(上)