繁体   English   中英

嗨,在 python 的新手中,我想使用 tkinter 为我的 python 脚本制作一个 GUI

[英]Hi, in new to python and i want to make a GUI for my python script using tkinter

所以我正在尝试使用 Tkinter 为我的 python 脚本制作一个 GUI。 我想要我相当简单的只是 window ,您可以在其中键入要 ping 的 IP 和执行命令的按钮。 这是我的脚本:

import os
address = input("Enter Ip Here:")
os.system(f"ping {address} -t -l 65500")

所以基本上我想要的是能够在一个小的 window 中输入{address},然后按下下面的按钮来执行这个,但我不知道该怎么做。 (我已经尝试过该脚本,它可以在 cmd 提示符下运行。我只想要一个 GUI。我们将不胜感激!

我还制作了一个单独的脚本,它使用 Tkinter 打开一个 window,它有一个退出按钮来关闭 window:

import Tkinter as tk
from Tkinter import ttk

# root window
root = tk.Tk()
root.geometry('600x600')
root.resizable(False, False)
root.title('Ping Of Death')

# exit button
exit_button = ttk.Button(
    root,
    text='Execute',
    command=lambda: root.quit()
)

exit_button.pack(
    ipadx=5,
    ipady=5,
    expand=True
)

root.mainloop()

为此,您需要在 window 中添加一个Entry ,并在按下按钮后执行您的 ping,并将address设置为条目的值。 这是一个关于如何工作的简单示例:

import tkinter as tk


def ping(address):
    import os
    os.system(f"ping {address} -t -l 65500")


root = tk.Tk()
root.geometry('600x600')
root.resizable(False, False)
root.title('Ping Of Death')

ip_input_label = tk.Label(root, text="IP: ")
ip_input_label.grid(row=0, column=0)

ip_input = tk.Entry(root)
ip_input.grid(row=0, column=1)

button = tk.Button(root, text="Ping", command=lambda: ping(ip_input.get()))
button.grid(row=1, column=0)

root.mainloop()

尝试这个:

import tkinter as tk
from tkinter import ttk
import os

def startx():
    #address = input("Enter Ip Here:")
    os.system(f"ping {text.get()} -t -l 65500")

# root window
root = tk.Tk()
root.geometry('600x600')
root.resizable(False, False)
root.title('Ping Of Death')

var = tk.StringVar 

text = tk.Entry(root,textvariable=var, width = 25)
text.pack()

# exit button
exit_button = ttk.Button(
    root,
    text='Execute',
    command=startx
)

exit_button.pack(
    ipadx=5,
    ipady=5,
    expand=True
)

root.mainloop()

Output: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM