0

需要帮助解决这个问题,我是一个为此疯狂的初学者。每次按下“pingButton1”时,我都希望“pingResult1”刷新信息,而不是每次按下时都添加新信息。这是一个简单的“检查 ping 是否良好”程序。

有什么建议么?

堆叠

我试过使用谷歌,但没有什么对我有用。

from tkinter import *
import os
import subprocess
from time import sleep

menu = Tk()
menu.title("Panel")
menu.geometry("250x380+700+500")
menu.resizable(0, 0)
menu.configure(background="#0d335d")


def close():
    screen.destroy()

def pingWindow1():
    global ip1
    global pingButton1
    global screen
    screen = Toplevel(menu)
    screen.title("Ping Windows")
    screen.geometry("300x250+650+300")
    screen.configure(background="#0d335d")
    
    blank = Label(screen, bg="#0d335d", text="")
    blank.pack()

    ip1 = Entry(screen, width=20, bg="white")
    ip1.pack()

    blank1 = Label(screen, bg="#0d335d", text="")
    blank1.pack()

    pingButton1 = Button(screen, text="Ping away..", width="20", bg="#e5e5e5", height="2", borderwidth=2, relief="ridge", command=pingResult1)
    pingButton1.pack()

    close_ping = Button(screen, text="Close", width="20", bg="#e5e5e5", height="2", borderwidth=2, relief="ridge", command=close)
    close_ping.pack()


    blank2 = Label(screen, text="", bg="#0d335d")
    blank2.pack()

    screen.bind('<Escape>', lambda _: close())

def pingResult1():
    global pingIP1
    pingIP1 = ip1.get()

    try:
        overall_mgm()
    except:
        return False

    try:
        overall_mgm_RO()
    except:
        return False

    done = Label(screen, text="Completed").pack()

    


def overall_mgm():
    response = os.system("ping -c 1 sekiiws00"+pingIP1)

    if response is not 0:
        fail = Label(screen, bg="black", fg="red", text="KI FAILED").pack()
    else:
        success = Label(screen, bg="black", fg="green", text="KI SUCCESS").pack()

def overall_mgm_RO():
    response = os.system("ping -c 1 seroiws00"+pingIP1)

    if response is not 0:
        fail = Label(screen, bg="black", fg="red", text="RO FAILED").pack()
    else:
        success = Label(screen, bg="black", fg="green", text="RO SUCCESS").pack()


# Widget
option = Button(menu, text="Ping IP", width="20", bg="#e5e5e5",height="2", borderwidth=2, relief="ridge", command=pingWindow1)
# Out
option.pack()





menu.mainloop()


我猜我需要这样的东西

if pingButton1 clicked more than once
    refresh current Labels( fail & success)
def pingResult1():
    global pingIP1
    pingIP1 = ip1.get()

    try:
        overall_mgm()
    except:
        return False

    try:
        overall_mgm_RO()
    except:
        return False

    done = Label(screen, text="Completed").pack()
4

1 回答 1

0

有了这个demo,您可以textpressed.

import tkinter
from functools import partial
# partial is good for passing `function` and `its args`

def button_command(button):
    # for example
    button.config(text="another value")

# creating new button
# root is whatever you want
button = tkinter.Button(root, text="something")

# add command to button and passing `self`
button.config(command=partial(button_command, button))
button.pack()

将此示例调整为您的代码,您就可以开始了。

于 2021-03-02T12:35:18.790 回答