python wxpython菜鸟教程_wxpython新手向教程

python wxpython菜鸟教程_wxpython新手向教程wxpython教程手写wxpython会有各种问题,可以去下载wxformbuilder布局管理器然后去百度一下这个布局管理器的教程,这里太多了不多赘述。两种创建窗口方式:classMyFrame(wx.Frame)和classMyPanel(wx.Panel)来继承wx.Frame和wx.Panel,但是用wxformbuilder来创建布局和窗口会自动帮忙写好。继承wx.Frame的结尾…

大家好,又见面了,我是你们的朋友全栈君。

wxpython教程

手写wxpython会有各种问题,可以去下载wxformbuilder布局管理器

然后去百度一下这个布局管理器的教程,这里太多了不多赘述。

两种创建窗口方式:class MyFrame(wx.Frame)和class MyPanel(wx.Panel)来继承wx.Frame和wx.Panel,但是用wxformbuilder来创建布局和窗口会自动帮忙写好。

继承wx.Frame的结尾是app=wx.App() frm=MyFrame() frm.Show() app.MainLoop()Show中的参数为True/False,False则不可见窗口

继承wx.Panel的结尾是app = wx.App() frame = wx.Frame(None) panel = MyPanel(frame) frame.Show() app.MainLoop()

MainLoop为每个继承类都要填写,否则无法运行

基本的控件TextCtrl,Button,StaticText

TextCtrl

基本的属性Clear()(清空TextCtrl中的内容),AppendText()(在末尾添加文本)

排列布局在wxformbuilder中都有举几个列子(wx.TE_MULTILNE为可以进行多行输入,wx.TE_LEFT为左对齐,可以用 | 来进行多种styel组合的方式)

Button

wx.Button来创建按钮

按钮调用函数

可以这么写self.Button.Bind(self,self.func)但是在wxformbuilder进行设置事件,它会写好的

StaticText

可以利用self.tc = wx.StaticText(self, 0,’ str ‘)

第三个参数为标签内容

以上都是在 class MyPanel(wx.Panel):的理论上进行的,控件最好都是在Panel上进行控制和编写!!

panel的创建方式wx.Panel.init(self, parent)

frame的创建方式 wx.Frame.init(self,None,title=“str”)

以上都可以用wxformbuilder来完成!

下面插入我的一段作业代码“

#– coding: utf-8 —

import wx

import wx.xrc

import time

import random

import threading

‘’‘利用threading解决while死循环会卡死程序的问题,’’’

###########################################################################

Class MyPanel1

###########################################################################

dict = {1: ‘name’,

2: ‘name’,

3: ‘name’,

4: ‘name’,

5: ‘name‘,

6: ‘name’,

7: ‘name’,

8: ‘name’,

9: ‘name’,

10: ‘name’,

11: ‘name’,

12: ‘name’,

13: ‘name’,

14: ‘name’,

15: ‘name’,

16: ‘name’,

17: ‘name’,

18: ‘name’,

19: ‘name’,

20: ‘name’,

21: ‘name’,

22: ‘name’,

23: ‘name’,

24: ‘name’,

25: ‘name’,

26: ‘name’,

27: ‘name’,

28: ‘name’}

class MyPanel(wx.Panel):

def __init__(self, parent):

wx.Panel.__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(500, 300),

style=wx.TAB_TRAVERSAL)

self.Sure = False

bSizer1 = wx.BoxSizer(wx.VERTICAL)

self.m_staticText1 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)

self.m_staticText1.Wrap(-1)

bSizer1.Add(self.m_staticText1, 1, wx.ALL | wx.EXPAND, 5)

gSizer1 = wx.GridSizer(0, 2, 0, 0)

self.StartButton = wx.Button(self, wx.ID_ANY, u”Start”, wx.DefaultPosition, wx.DefaultSize, 0)

gSizer1.Add(self.StartButton, 0, wx.ALL, 5)

self.StopButton = wx.Button(self, wx.ID_ANY, u”Stop”, wx.DefaultPosition, wx.DefaultSize, 0)

gSizer1.Add(self.StopButton, 0, wx.ALL | wx.ALIGN_RIGHT, 5)

bSizer1.Add(gSizer1, 1, wx.EXPAND, 5)

self.SetSizer(bSizer1)

self.Layout()

# Connect Events

self.StartButton.Bind(wx.EVT_BUTTON, self.StartButtonOnButtonClick)

self.StopButton.Bind(wx.EVT_BUTTON, self.StopButtonOnButtonClick)

def __del__(self):

pass

# Virtual event handlers, overide them in your derived class

def StartButtonOnButtonClick(self, event):

self.Sure = True

def StopButtonOnButtonClick(self, event):

self.Sure = False

def Round(self):

self.m_staticText1.SetLabel(‘现在开始抽取’)

while True:

if self.Sure == True:

self.m_staticText1.SetLabel(‘{0}’.format(dict[random.randint(1,28)]))

time.sleep(0.1)

app = wx.App()

frame = wx.Frame(None)

panel = MyPanel(frame)

frame.Show()

task=threading.Thread(target=panel.Round)

task.start()

app.MainLoop()`

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143198.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 3万计算机配置清单,电脑组装知识网预算2万至3万元电脑主机推荐九代酷睿i9-9900K搭RTX2080Ti全能型高配电脑主机配置清单…

    3万计算机配置清单,电脑组装知识网预算2万至3万元电脑主机推荐九代酷睿i9-9900K搭RTX2080Ti全能型高配电脑主机配置清单…本文转自:http://www.dn010.com/peizhi/710.html近日,一位网友联系了小编,说他要配一套高配置的电脑主机,主机预算约为2万至3万元,针对该网友的预算要求,小编提供一套九代酷睿i9-9900K搭RTX2080Ti全能型高配电脑主机配置清单,用户还可根据自己的喜好调整电脑配置。电脑配置清单:注意:由于更新电脑硬件的速度更快,如果产品停产,请使用新产品。另外,硬件价格会随…

  • java stream toArray()

    java stream toArray()发现java使用stream时,经常会将map后的数据输入到数组中,这时一般在stream语句后面加上toArray().

  • potplayer设置快捷键[通俗易懂]

    potplayer设置快捷键[通俗易懂]引言potplayer是一款非常好用的播放器,功能齐全,且无广告,但是我在使用中按错快捷键ctrl+spotplayer就开启了一个叫采集器的东西,非常难受.话说和ctrl+s这么高频使用的快捷键冲突也太令人恼火了吧解决方法在播放区域右键鼠标打开菜单,找到选项按钮按钮????找到快捷键选项卡????添加快捷键,输入ctrl+s,然后选择未定义指令,确定,大功告成!…

  • Android适应方案汇总(三)

    Android适应方案汇总(三)

  • yk87cn一键视频神器ios_codename cure

    yk87cn一键视频神器ios_codename cure变量命名神器-Codelf在某度上搜索codeif得到的首个搜索结果:http://codeif.xinke.org.cn/点击链接进去后,输入名称回车后网页并无任何反应,不知道是不是服务器端出现问题了。后来搜索了一下,得到一个外网地址:https://unbug.github.io/codelf实测这个地址网页可以使用。…

  • java 封装

    java 封装1.封装简介概念将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的访问和操作。好处a.只能通过规定的方法访问数据。b.隐藏类的实例细节,方便修改和实现。为啥要对java的类进行封装?个人认为当做一个项目的时候里面的类很多,打个比方一个大公司部门很多,老板不是每个员工都认识,但是“各部门

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号