класс ГИ с двумя программами - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь создать пример графического интерфейса пользователя tkinter, который на одной кнопке пытается проверить состояние сервера, и если он работает, после нажатия кнопки «Пуск» он уничтожает графический интерфейс и запускает некоторую функцию, которая отправляет мне текстовый файл.Я сделал графический интерфейс и кнопку проверки подключения к серверу, но не знаю, как уничтожить графический интерфейс и запустить функцию. Большое спасибо:)

from tkinter import *
import requests, os

class form():
root = Tk()
wel = Label(root,text="Welcome")
serv = Entry(root,width=40)

def checkConn():
    if(requests.get(serv.get()).status_code==200):
        print("Succesfull")

def start(self):
    root.destroy()

prov = Button(root,text="Proveri",width=35, command = checkConn)
zap =  Button(root, text ="Zapocni",width=35,command =start)

wel.pack()
serv.pack()
prov.pack()
zap.pack()

root.mainloop()




form()

1 Ответ

0 голосов
/ 03 декабря 2018

Я бы рекомендовал использовать функцию __init__() для настройки графического интерфейса пользователя, а также переменных класса.Я переписал ваш код так, как написал бы, но без битов запросов, просто чтобы показать функцию GUI.

from tkinter import *
import requests

class form():
    def __init__(self, master):
        self.master = master
        self.serv_text = StringVar()    # StringVar to hold entry value
        wel = Label(root, text="Welcome")
        serv = Entry(root, width=40, textvariable=self.serv_text)
        prov = Button(self.master, text="Proveri", width=35,
                      command=self.checkConn)
        zap =  Button(self.master, text ="Zapocni", width=35,
                      command=self.start)
        wel.pack()
        serv.pack()
        prov.pack()
        zap.pack()

    def checkConn(self):
        if(requests.get(self.serv_text.get()).status_code==200):
            print("Succesfull")
        else:
            print('miss')

    def start(self):
        self.master.destroy()

root = Tk()
form(root)
root.mainloop()

Другие примеры и обсуждение вы найдете в Лучший способ структурировать приложение tkinter .

...