Вот мой основной код скрипта
from colorama import init, Fore, Back, Style
import commands
import config
import sys
# Coloroma autoreset
init(autoreset=True)
def check_database():
# Database Check.
while True:
db = input("Check for new databases? Y/N: ")
if db.lower() == 'y':
commands.db_download()
break
elif db.lower() == 'n':
break
else:
continue
def client_use():
# Decide which client to use.
while True:
client = input("JP or GLB? J/G: ")
if client.lower() == 'j':
config.client = 'japan'
break
elif client.lower() == 'g':
config.client = 'global'
break
else:
continue
Я хочу, чтобы при запуске графического интерфейса, например, была кнопка «Запустить бота» (что мне удалось сделать) и сразу после запуска моего скрипта выше. Как будто он спрашивает «Проверить наличие новой базы данных?» и у меня есть две кнопки «Да» или «Нет», и в зависимости от того, что я нажимаю, он отправляет ввод с «y» или «n» и продолжает соответствующие строки кода. Этот пункт мне не удалось сделать.
И вот что я успел сделать на данный момент, чего совсем немного
import tkinter
import questions
top = tkinter.Tk()
Lancement = tkinter.Button(top, text = "Lancer", command = questions)
Lancement.pack()
top.mainloop()
Как я мог сделать это, плз?
Tkinter поставляется с некоторыми дополнительными диалоговыми окнами для вопросов (см. https://pythonspot.com/tkinter-askquestion-dialog/).
from tkinter import *
from tkinter import messagebox
def launch():
response = messagebox.askyesno("Server Connection", "Check for new db?")
if response:
print("You clicked yes")
else:
print("You clicked no")
root = Tk()
button = Button(root,text = "Launch",command=launch)
button.grid()
root.mainloop()
Нажатие на кнопку запуска вызовет диалоговое окно с кнопками да/нет.
Вам нужно будет реструктурировать свой код, чтобы он принимал ответы из этих диалогов, а не функции ввода текста из командной строки.
@ Эйс Да. Вам нужно будет изменить свой «основной» сценарий.
но как я могу изменить его так, чтобы он получал те же результаты. Мне нужно, чтобы он был таким, потому что он должен работать, поэтому я немного потерялся сейчас :(
@Туз. Короткий ответ: вы не можете. У вас не может быть как записи командной строки, так и диалогового окна tkinter. Также у вас не может быть цикла while true
внутри программы tkinter. Вы все еще можете добиться того же результата, но вам придется реорганизовать существующий код.
Вы имеете в виду, что мне придется изменить его в моем основном сценарии? Например, "db = input("Проверить наличие новых баз данных? Y/N:")" Мне придется это изменить?