-1

大家好,我正在学习 python 和 wxpython,现在我在做 spin-ctrl 按钮事件时被卡住了,

问题:我有一个 spin ctrl 和几个 text_ctrl ,spin_ctrl 最大值是 7 并且它不应该使用 max、min 或 setvalue() 来设置它。当用户达到 8 或更多时,我想弹出一条消息,说 7 是最大值。或者如果用户输入 8 。我试图绑定它并显示一条消息,但每次点击都会出现一条消息。:(感谢您的帮助并提前花时间解决我的问题。如果发现任何错误,请见谅。

4

1 回答 1

0

您需要将最大值设置为 8,以便获得足够大的数字并收听 EVT_TEXT

import wx

class MyForm(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Spin Button Tutorial")
        panel = wx.Panel(self, wx.ID_ANY)

        self.text = wx.SpinCtrl(panel, value="1")
        self.text.SetRange(1, 8)
        self.text.SetValue(1)

        self.text.Bind(wx.EVT_SPINCTRL, self.OnSpin)
        self.text.Bind(wx.EVT_TEXT, self.OnSpin)



    def OnSpin(self, event):
        if self.text.GetValue() > 7:
               self.text.SetValue(7)
               wx.MessageDialog(self,"Test Message","Too Big!").ShowModal()

# Run the program
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyForm()
    frame.Show()
    app.MainLoop()
于 2013-04-10T04:43:43.090 回答