数字键盘

Numeric Keyboard

我想设计一个数字键盘,不知道用什么函数来实现点击按钮时的实时显示,比如点击按钮1时textctrl中显示1,就像计算器显示一样.并且连续点击1234个按钮可以显示为1234。我想知道如何向

添加退格键和清除函数
import wx

class iCal(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Text")
        panel = MainPanel(self)

class MainPanel(wx.Panel):

    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent)
        self.frame = parent 

        text_1 = wx.TextCtrl(self, value=float(num))

        button_0 = wx.Button(self, label="0")        
        button_1 = wx.Button(self, label="1")
        button_2 = wx.Button(self, label="2")

        button_0.Bind(wx.EVT_LEFT_DOWN,self.output0)
        button_1.Bind(wx.EVT_LEFT_DOWN,self.output1)
        button_2.Bind(wx.EVT_LEFT_DOWN,self.output2)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(text_1, 0, wx.ALL|wx.CENTER, 5)
        sizer.Add(button_0, 0, wx.ALL|wx.CENTER, 5)
        sizer.Add(button_1, 0, wx.ALL|wx.CENTER, 5)
        sizer.Add(button_2, 0, wx.ALL|wx.CENTER, 5)
        self.SetSizer(sizer)

    def self.output0(self,event):
        if float(num) > 0:
            num = num + str(0)

    def self.output1(self,event):
        num = num + str(1)

    def self.output1(self,event):
        num = num + str(1)



if __name__ == '__main__':
    app = wx.App(False)
    frame = iCal()
    frame.Show()
    app.MainLoop()

Numberic Keyboard

import wx

class iCal(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Text")
        panel = MainPanel(self)

class MainPanel(wx.Panel):

    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent)
        self.frame = parent
        self.text_1 = wx.TextCtrl(self, value="0")
        button_0 = wx.Button(self, label="0")
        button_1 = wx.Button(self, label="1")
        button_2 = wx.Button(self, label="2")
        clear = wx.Button(self, label="Clear")

        button_0.Bind(wx.EVT_LEFT_DOWN,self.output0)
        button_1.Bind(wx.EVT_LEFT_DOWN,self.output1)
        button_2.Bind(wx.EVT_LEFT_DOWN,self.output2)
        clear.Bind(wx.EVT_LEFT_DOWN,self.clear)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.text_1, 0, wx.ALL|wx.CENTER, 5)
        sizer.Add(button_0, 0, wx.ALL|wx.CENTER, 5)
        sizer.Add(button_1, 0, wx.ALL|wx.CENTER, 5)
        sizer.Add(button_2, 0, wx.ALL|wx.CENTER, 5)
        sizer.Add(clear, 0, wx.ALL|wx.CENTER, 5)
        self.SetSizer(sizer)

    def output0(self,event):
        num = "0"
        my_string = self.text_1.GetValue() + num
        self.text_1.SetValue(my_string)

    def output1(self,event):
        num = "1"
        my_string = self.text_1.GetValue() + num
        self.text_1.SetValue(my_string)

    def output2(self,event):
        num = "2"
        my_string = self.text_1.GetValue() + num
        self.text_1.SetValue(my_string)

    def clear(self,event):
        my_string = self.text_1.GetValue()
        my_string = my_string[:len(my_string)-1]
        self.text_1.SetValue(my_string)

if __name__ == '__main__':
    app = wx.App(False)
    frame = iCal()
    frame.Show()
    app.MainLoop()
  1. 如果您要post编码,至少运行它首先要确保您不是post垃圾。
  2. 在 post 之前阅读有关操作字符串的信息:Strings