📜  使用 Tkinter 创建一个 GUI 来获取域信息(1)

📅  最后修改于: 2023-12-03 14:49:47.208000             🧑  作者: Mango

使用 Tkinter 创建一个 GUI 来获取域信息

简介

Tkinter 是 Python 标准库中的一部分,它是 Python 内置的一个 GUI 工具包,支持从基本的按钮到复杂的窗口布局。在 Python 中使用 Tkinter 创建 GUI 界面非常的方便。

在这个示例中,我们将会学习如何使用 Tkinter 来创建一个 GUI,来获取一个网站的域名。

准备环境

在开始之前,你需要有一些基本的 Python 编程经验,然后你需要安装 Python 和 Tkinter 工具包。一般来说,Python 学习和开发是在 Linux、macOS 或 Windows 操作系统中,任何一个操作系统都可以使用 Python,但对于创建 GUI 来说,我们推荐使用 macOS 或 Windows 系统。

在 macOS 系统中,默认已经安装了 Python,你需要打开终端输入如下命令来安装 Tkinter 工具包:

$ sudo apt-get install python3-tk

在 Windows 系统中,你需要安装 Python 和 Tkinter 工具包,可以在 Python 官方网站 上下载 Python 的安装程序。安装过程简单,这里不详细介绍,安装完 Python 后,你需要在命令行界面执行以下命令来安装 Tkinter 工具包:

$ pip install tkinter
编写代码

为了使本文的教学更加实际,这里以一个获取域名信息的例子来展示如何使用 Tkinter 创建一个 GUI 界面。

  1. 导入 Tkinter 模块和 Pythonwhois 模块。
import tkinter as tk
import whois
  1. 创建一个 Tkinter 窗口对象。
window = tk.Tk()
window.title("Get Domain Info")
window.geometry("400x300")
  • tk.Tk(): 创建一个 Window 对象。
  • window.title(): 用于设置窗口的标题。
  • window.geometry(): 用于设置窗口的大小。
  1. 创建一个输入框并放置在窗口中。
domain_name = tk.StringVar()
domain_input = tk.Entry(window, textvariable=domain_name, font=("Arial", 14))
domain_input.place(x=100, y=50, width=200, height=30)
  • tk.StringVar(): 创建一个字符串类型的变量。
  • tk.Entry(): 创建一个输入框,textvariable 参数指定了输入框显示的值。
  • domain_input.place(): 设置输入框的显示位置和大小。
  1. 创建一个文本框并放置在窗口中。
result_text = tk.Text(window, font=("Arial", 14))
result_text.place(x=100, y=150, width=200, height=100)
  • tk.Text(): 创建一个文本框。
  1. 创建一个按钮并放置在窗口中。
def get_info():
    domain = domain_name.get()
    w = whois.whois(domain)
    result_text.delete("1.0", "end")
    result_text.insert(tk.END, w.text)
    
btn = tk.Button(window, text="Get Info", command=get_info)
btn.place(x=150, y=100, width=100, height=30)
  • tk.Button(): 创建一个按钮,command 参数指定了点击按钮后调用的函数。
  • get_info(): 当点击按钮时会执行 get_info() 函数。
  • domain_name.get(): 获取输入框中输入的内容。
  • whois.whois(): 调用 Pythonwhois 模块获取域名的 Whois 信息。
  • result_text.delete(): 删除文本框中的内容。
  • result_text.insert(): 在文本框中插入一段文本。

最终的代码实现如下:

import tkinter as tk
import whois

window = tk.Tk()
window.title("Get Domain Info")
window.geometry("400x300")

domain_name = tk.StringVar()
domain_input = tk.Entry(window, textvariable=domain_name, font=("Arial", 14))
domain_input.place(x=100, y=50, width=200, height=30)

result_text = tk.Text(window, font=("Arial", 14))
result_text.place(x=100, y=150, width=200, height=100)

def get_info():
    domain = domain_name.get()
    w = whois.whois(domain)
    result_text.delete("1.0", "end")
    result_text.insert(tk.END, w.text)

btn = tk.Button(window, text="Get Info", command=get_info)
btn.place(x=150, y=100, width=100, height=30)

window.mainloop()
运行程序

在你完成代码的编写之后,你可以运行程序来测试。

在 Windows 系统中,你需要在命令行界面执行以下命令运行程序:

$ python script.py

在 macOS 系统中,你需要在终端中执行以下命令:

$ python3 script.py
总结

在本文中,我们学习了如何使用 Tkinter 创建一个 GUI,提供输入框、文本框和按钮,来获取域名的 Whois 信息。这个例子展示了 Tkinter 的灵活、易用性,适合初学者在学习 Python GUI 开发中使用。