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()`

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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