使用 Python Tkinter 的摩尔斯电码翻译器 GUI

pythontkinterserver side programmingprogramming

给定的问题陈述是借助 Python Tkinter(用于创建标准 GUI 的库)为摩尔斯电码翻译器创建图形用户界面。因此,如果我们了解 Python,使用 tkinter 创建 GUI 将很容易。

什么是摩尔斯电码翻译器?

在了解摩尔斯电码翻译器之前,我们首先要了解摩尔斯电码到底是什么。因此,摩尔斯电码只是使用长信号和短信号序列来改变字母、数字或符号。它基本上是为了长距离通信而开发的。短信号和长信号分别由点和划表示。因此,如果我们想表示特定的字母或数字,我们会使用这些信号的组合。代码代表二进制系统。其中点表示二进制数字"1",破折号表示二进制数字"0"。

现在我们来谈谈摩尔斯电码转换器。摩尔斯电码转换器是一种用于将英文字母、数字和符号转换为摩尔斯电码的工具。例如 -

理解问题的逻辑

当前的问题是使用 Python Tkinter 为摩尔斯电码转换器创建一个 GUI。因此,我们将制作一个 GUI,用户将在其中输入句子,然后使用转换器将给定的输入转换为摩尔斯电码。

因此,我们将使用 Tkinter 库来构建此转换器。首先,我们将导入构建翻译器所需的库,在我们的示例中,我们将导入 tkinter。导入库后,我们将定义莫尔斯电码的字典。然后,我们将创建一个 GUI 类,它将充当 GUI 应用程序。然后,我们将初始化 GUI 组件。此代码中非常重要的一步是翻译器的逻辑。我们将在其中将普通文本转换为莫尔斯电码。最后,我们将运行该应用程序以展示翻译器的功能。

算法

  • 步骤 1 - 第一步,我们将导入翻译器所需的库。在我们的代码中,我们将导入用于创建 GUI 的 Python 的 tkinter 库。

  • 步骤 2 - 将莫尔斯电码字典定义为 MORSE_DICT。相应地更改代码。

  • 步骤 3 − 创建一个 GUI 类作为 MorseCodeTranslator。它将代表 GUI 应用程序,并且还具有用于设置 GUI 组件的初始化方法。

  • 步骤 4 − 创建类后,我们将初始化 GUI 组件,如标签、文本字段、按钮。

  • 步骤 5 − 然后我们将实现翻译器的逻辑并创建一个名为 translator() 的函数。此方法将处理翻译过程。

  • 步骤 6 − 最后,我们将运行该应用程序来展示我们创建的翻译器的机制。

示例

import tkinter as tktr

# Morse Code dictionary
MORSE_DICT = {
   '.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E',
   '..-.': 'F', '--.': 'G', '....': 'H', '..': 'I', '.---': 'J',
   '-.-': 'K', '.-..': 'L', '--': 'M', '-.': 'N', '---': 'O',
   '.--.': 'P', '--.-': 'Q', '.-.': 'R', '...': 'S', '-': 'T',
   '..-': 'U', '...-': 'V', '.--': 'W', '-..-': 'X', '-.--': 'Y',
   '--..': 'Z', '-----': '0', '.----': '1', '..---': '2', '...--': '3',
   '....-': '4', '.....': '5', '-....': '6', '--...': '7', '---..': '8',
   '----.': '9', '.-.-.-': '.', '--..--': ',', '..--..': '?',
   '.----.': "'", '-.-.--': '!', '-..-.': '/', '-.--.': '(',
   '-.--.-': ')', '.-...': '&', '---...': ':', '-.-.-.': ';',
   '-...-': '=', '.-.-.': '+', '-....-': '-', '..--.-': '_',
   '.-..-.': '"', '...-..-': '$', '.--.-.': '@', '/': ' ',
}

class MorseCodeTranslator:
   def __init__(self, origin):
      self.origin = origin
      self.origin.title("Morse Code Translator")

      self.in_label = tktr.Label(origin, text="Input:")
      self.in_label.pack()

      self.in_text = tktr.Text(origin, font="Arial", bg="light blue", height=5, width=30)
      self.in_text.pack()

      self.translate_button = tktr.Button(origin, text="Translate", command=self.translate)
      self.translate_button.pack()

      self.Output_label = tktr.Label(origin, text="Output:")
      self.Output_label.pack()

      self.out_text = tktr.Text(origin, font="Arial", bg="light green", height=5, width=30)
      self.out_text.pack()

   def translate(self):
      in_text = self.in_text.get("1.0", "end-1c")
      translated_text = self.morse_to_text(in_text)
      self.out_text.delete("1.0", tktr.END)
      self.out_text.insert(tktr.END, translated_text)

   def morse_to_text(self, morse_dict):
      morse_dict = morse_dict.split(" ")
      translated_text = ""
      for code in morse_dict:
         if code in MORSE_DICT:
            translated_text += MORSE_DICT[code]
         return translated_text


   if __name__ == '__main__':
      origin = tktr.Tk()
      origin.configure(background='white')
      origin.geometry("400x350")

   app = MorseCodeTranslator(origin)
   origin.mainloop()

输出

复杂度

使用 python tkinter 创建莫尔斯电码翻译器 GUI 的时间复杂度为 O(n),其中 n 是莫尔斯电码输入的大小。由于我们将输入文本的每个字母转换为莫尔斯电码,因此它将以与输入文本相同的长度进行迭代。代码的空间复杂度为 O(m),其中 m 是输出中的莫尔斯电码系列的数量。

结论

结论是,我们使用 Python tkinter 为莫尔斯电码翻译器创建了一个简单的 GUI。在本文中,我们了解了 tkinter 的基本术语和功能。翻译器将简单文本转换为莫尔斯电码,时间复杂度为 O(n)。


相关文章