不允许用Python在Glade中使用数字

2024-04-24 12:18:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个相当新的Python程序员(3天前开始)。我是一个土木工程师的学徒,他让我为他的项目做一些简单的工作,因为我应该做的目标是不允许某些林间空地物体输入数字。你知道吗

我一直在努力创建的代码如下:

    def testOmHeltal (self, number1):
        textviewResultat = self.builder.get_object("textviewResultat")
        text = gtk.TextBuffer()
        try:
            #print number1.get_text()
            #temp = number1.get_text() + number1.get_text()
            temp = float(number1.get_text())

        except ValueError:
            text.set_text("ERROR: Endast Nummer")
            self.builder.get_object("hboxWarning").show()
            self.builder.get_object("image12").show()
            self.builder.get_object("textviewResultat").set_buffer(text)
            return 0
        self.builder.get_object("hboxWarning").hide()
        self.builder.get_object("image12").hide()


    def quit(self, widget):
        sys.exit(0)

此代码在glade对象的位置调用,行为:

self.testOmHeltal(entryGladeObject)

现在说到手头的问题,我总是得到一个浮点错误:

File "bvf.py", line 393, in utfora

+float(entryTjockleksskyddslager.get_text<>>>>

ValueError: invalid literal for float<>: 0.04e

0.04e是无效的输入,393行是我的代码,因为他一直都在使用float,我不应该干预太多,我有点惊慌失措。。你知道吗

我知道float只能以一个数字开始和结束,以不给出错误,但由于我的“code”位想要一个错误(或者更确切地说,是一个异常)来启动某个人使用字母而不是假定数字的“hboxWarning”和“image12”,我不知道该怎么做>

除了用hboxWarning和image12显示我的错误,什么都没有发生。。。你知道吗

任何提示或建议都会大有帮助。你知道吗


Tags: 代码textselfgetobjectdef错误builder
1条回答
网友
1楼 · 发布于 2024-04-24 12:18:41

我不知道我是否理解正确,但错误不在你的代码上,对吗?你知道吗

我只能假设在验证之前有一段代码试图将值转换成float。如果是这种情况,您应该在对该值进行任何处理之前验证该值,或者根据处理本身,将try-except代码移到错误代码的周围(例如,如果处理意味着数据库操作,则之前进行所有验证会更安全)。你知道吗

如果错误发生在运行self.testOmHeltal(entryGladeObject)的行之前,那么信号/方法的执行会立即停止,代码永远不会被执行;这就是为什么没有显示警告的原因。你知道吗

相关问题 更多 >