使用addButton tkinter绑定enter键

2024-06-28 10:50:35 发布

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

我几乎搜索了所有地方,没有发现有人在tkinter中使用enter键运行函数而不单击onclick的情况。这是我的

import tkinter as tk
from breezypythongui import EasyFrame
    
root = tk.Tk()
    
class TemperatureConverter(EasyFrame):
    """A termperature conversion program."""
    def __init__(self):
        """Sets up the window and widgets."""
        EasyFrame.__init__(self, title = "Temperature Converter")

        # Label and field for Celsius
        self.addLabel(text = "Celsius",
                      row = 0, column = 0)
        self.celsiusField = self.addFloatField(value = 0.0,
                                               row = 1,
                                               column = 0,
                                               precision = 2)

        # Label and field for Fahrenheit
        self.addLabel(text = "Fahrenheit",
                      row = 0, column = 1)
        self.fahrField = self.addFloatField(value = 32.0,
                                            row = 1,
                                            column = 1,
                                            precision = 2)

        # Celsius to Fahrenheit button
        
        self.addButton(text = ">>>>",
                        row = 2, column = 0,
                        command = self.computeFahr)
        def compute0 (event):    
            root.bind('<Return>', computeFahr)

        # Fahrenheit to Celsius button
        
        self.addButton(text = "<<<<",
                        row = 2, column = 1,
                        command = self.computeCelsius)
        def compute1(event):
            root.bind('<Return>', computeCelsius)

    # The controller methods
    def computeFahr(self):
        """Inputs the Celsius degrees
        and outputs the Fahrenheit degrees."""
        degrees = self.celsiusField.getNumber()
        degrees = degrees * 9 / 5 + 32
        self.fahrField.setNumber(degrees)

    def computeCelsius(self):
        """Inputs the Fahrenheit degrees
        and outputs the Celsius degrees."""
        degrees = self.fahrField.getNumber()
        degrees = (degrees - 32) * 5 / 9 
        self.celsiusField.setNumber(degrees)

def main():
    """Instantiate and pop up the window."""
    TemperatureConverter().mainloop()

if __name__ == "__main__":
    main()

Tags: andthetextselfdefcolumnrootrow