【问题标题】:Python - Continous Button Inputing (Sort of like BCD) [closed]Python - 继续按钮输入(有点像 BCD)[关闭]
【发布时间】:2013-10-13 04:17:00
【问题描述】:

我正在尝试做一些类似于计算器的东西,不是一个完整的计算器,而是一个可以从按钮输入并对其进行操作的计算器。我想弄清楚如何使用按钮获取用户输入。你知道 MS 计算器是如何工作的,嗯? (或基本上任何其他计算器,或您的键盘本身)。它会改变你给它的输入并将其写下来。所以基本上我在问这个:用户按“1”然后按“5”然后按“3”。我希望程序中的变量存储为“153”。

抱歉解释不好,我真的不知道如何正确表达这个问题。

我还没有真正构建代码。它只包含 Tk 窗口、按钮及其功能。

谢谢:)!

编辑:当前代码有: 导入 tkinter,创建: (master=Tk()) 创建 10 个按钮,全部标记为 0-9。差不多就是这样。

按钮被标记为 b0、b1、b2 ...

我尝试将它们附加到一个列表中,然后以某种方式将列表中的所有元素组合成一个整数。但我想不通。

【问题讨论】:

    标签: python loops button tkinter calculator


    【解决方案1】:

    好吧,如果您发布您创建的 GUI 代码会更容易为您提供帮助,但一般来说,执行此操作的一种方法是存储一个表示正在输入的当前数字的字符串。然后,如果用户按下数字按钮,新数字将附加到当前数字的末尾。例如,

    例如:

    class Calculator:
        def __init__(self):
            # ... this is where you'd set up the rest of the GUI ..
            self.buttons = {}  # Store the calculator buttons in a dictioanry
            for num in [str(x) for x in range(10)]:
                self.buttons[num] = Tkinter.Button(self.keyFrame, text=num, command=self.callbackCreator(num))
            self.currentNumber = ""
    
        def callbackCreator(self, num):
            return lambda event:self.buttonCallback(num)
    
        def buttonCallback(key):
            if key in "0123456789":        # Check if the button is a digit or not
                self.currentNumber += key  # add new digit
    

    【讨论】:

    • 看起来很棒!我会看看我能做什么!顺便说一句,代码真的没什么,但你是对的,我会在 mu 电脑时发布代码:)
    • 更新了代码以修复按钮回调的问题。
    猜你喜欢
    • 2018-01-26
    • 2012-07-06
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 2017-06-15
    • 2016-11-29
    相关资源
    最近更新 更多