Так что моя проблема в том, что окно tkinter не появляется, когда я использую API-интерфейс discord.py.Но когда я нажимаю ctrl + c для выхода из окна tkinter, оно появляется автоматически, я думаю, что возникает конфликт с client.run (TOKEN), потому что когда я беру эту строку, она работает, но тогда мое приложение ничего не делает.
from tkinter import *
from discord.ext.commands import Bot
from discord import Game
TOKEN = ""
BOT_PREFIX = "!"
client = Bot(command_prefix=BOT_PREFIX)
root = Tk()
root.title("NinjaBoT Discord Client")
root.resizable(0, 0)
root.configure(bg="black")
root.geometry("630x520")
labelframe2 = LabelFrame(root)
labelframe2.config(bg="black", padx=5, pady=10)
labelframe2.grid(row=1, column=3)
labelframe3 = LabelFrame(root)
labelframe3.config(bg="black", padx=5, pady=10)
labelframe3.grid(row=1, column=0)
labelframe = LabelFrame(labelframe3)
labelframe.config(bg="black", padx=5, pady=10)
labelframe.grid(row=2, column=0)
label = Label(root, text="NinjaBoT Discord")
label.config(bg="black", fg="white")
label.config(font=("Courier", 30))
label.grid(row=0)
label1 = Label(labelframe2, text="::USERS::")
label1.config(bg="black", fg="white")
label1.grid(row=0, column=0)
txtscroll = Text(labelframe3)
txtuserlist = Text(labelframe2)
txtmessage = Text(labelframe)
@client.event
async def on_message(message):
txtscroll.insert(END, "#" + str(message.channel) + ":" + " " + str(message.author) + ":" + " " + message.content + "\n")
x = message.server.members
for users in x:
txtuserlist.insert(END, str(users.name) + "\n")
@client.event
async def on_ready():
await client.change_presence(game=Game(name="GUI"))
txtscroll.insert(END, 'Logged in as' + "\n")
txtscroll.insert(END, client.user.name + "\n")
txtscroll.insert(END, client.user.id + "\n")
txtscroll.insert(END, '-----------------------' + "\n")
scrollbar = Scrollbar(labelframe3)
scrollbar.grid(row=1, column=1, sticky="ns")
txtscroll.config(width=60, height=20, bg="black", fg="white")
txtscroll.grid(row=1, pady=10, sticky=W)
scrollbar.config(bg="black", command=txtscroll.yview)
txtscroll.config(yscrollcommand=scrollbar.set)
txtmessage.config(width=49, height=1)
txtmessage.grid(row=2, column=0, sticky=W)
b = Button(labelframe, text="SEND",fg="white", command="send")
b.grid(row=2, column=1, padx=5)
txtuserlist.config(width=10, height=23)
txtuserlist.grid(row=1, column=0, padx=5, pady=5)
client.run(TOKEN)
root.mainloop()
Есть ли лучший способ использовать client.run (TOKEN), чтобы это работало?Я думаю, что конфликтует с root.mainloop ()