wxpython编程示例:摇骰子程序,let's ROLL 6!!


wxpython编程示例:摇骰子程序,let's ROLL 6!!


今天已经9月1日。想想之前的计划已经过了不少时间了。

也做了一些小程序。也浪费了不少时间。感觉还需要系统地练习。

终于痛下苦心写博客了。

要知道本身就是菜B,再不练就废了╮(╯▽╰)╭ 


越写越发现,之前有些东西的理解是错误的。

我应该把自己学到的,练习的,哪怕是错误的

放上来。这个过程其实就是你思考提高的过程。

以后看是很欣慰的。


这个博客还是写给自己的。所以。有些明显的话就不写了。


朋友想要个摇骰子程序,我一想这还不简单,一个random不就得了。

后来才发现吧。。C++里有MFC,python有啥呢?

那就是wxpython。


wxpython怎么装。

http://www.wxpython.org/download.php#msw

直接下对应python版本和系统版本。建议x64也直接32位,x64编译不好弄。


wxpython怎么用?

那我直接上程序好了。


wx.Frame.__init__(self,None,-1,'阿姨的骰子')
<pre name="code" class="python">panel = wx.Panel(self,-1)

 建立了一个frame。名字是“阿姨的骰子” 

这个panel也可以self.panel,后面我都改成后者了。


        wx.StaticText(panel,-1, "Player A: ",(200,50))
        wx.StaticText(panel,-1, "Player B: ",(200,100))
        self.diceA = wx.StaticText(panel,-1,'',(280,50))
        self.diceB = wx.StaticText(panel,-1,'',(280,100))
我们在这个界面里,新建了4个静态文本对象。

首先是不会更改也不需要变动的A和B。而diceA和diceB我们一会要用。


        self.Button = wx.Button(panel,-1,'ROLL',(80,70))
        self.Bind(wx.EVT_BUTTON, self.OnClick, self.Button)
新建了button按钮,文本叫“ROLL”。并给这个button对象绑定了一个小事件,名字叫OnClick。

这样点button的时候,就会调用OnClick函数。

        self.diceA.SetLabel(str(a))
        self.diceB.SetLabel(str(b))
OnClick函数。我们setlabel ,就是对StaticText这种静态文本进行赋值。注意是字符串。 

#random就不说了。


好,那我现在不停地点Roll,就可以重复赋值对应2个StaticText对象了。

6啊6啊我要好多6啊~~





代码:

#-*- coding: gbk -*-

import wx
import random

class ButtonFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self,None,-1,'阿姨的骰子')
        panel = wx.Panel(self,-1)
        wx.StaticText(panel,-1, "Player A: ",(200,50))
        wx.StaticText(panel,-1, "Player B: ",(200,100))
        self.diceA = wx.StaticText(panel,-1,'',(280,50))
        self.diceB = wx.StaticText(panel,-1,'',(280,100))
        self.Button = wx.Button(panel,-1,'ROLL',(80,70))
        self.Bind(wx.EVT_BUTTON, self.OnClick, self.Button)
        self.Button.SetDefault()
    
    def OnClick(self,event):
        a = random.randint(1,6)
        b = random.randint(1,6)
        self.diceA.SetLabel(str(a))
        self.diceB.SetLabel(str(b))
        
if  __name__ == '__main__' :
    app = wx.App()
    frame = ButtonFrame()
    frame.Show(True)
    app.MainLoop()








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值