【发布时间】:2020-08-23 03:27:00
【问题描述】:
我想用 PyQt5 在 python 中为我的 discord 机器人做一个控制面板。我已经有了我的窗口:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1023, 457)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
#some other widgets
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(330, 30, 91, 31))
font = QtGui.QFont()
font.setPointSize(16)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
#some other widgets
和主要代码:
import discord
import sys
from window import Ui_MainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
prefix = ""
bot = discord.Client
class MyClient(bot):
async def on_connect(self):
print("Bot connected to")
async def on_ready(self):
print('Logged on as {0}!'.format(self.user))
for guild in self.guilds:
if guild.id == 354061299596132392:
print("guild find")
async def on_message(self, message):
print(message.content)
async def on_diconnect(self):
print("bot disconnected")
def launcher():
client = MyClient()
client.run('TOKEN')
def windowLauncher():
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
ui.pushButton.clicked.connect(launcher)
MainWindow.show()
sys.exit(app.exec_())
windowLauncher()
但是当我执行这个主代码时,窗口会启动,当我按下按钮启动机器人时,窗口会崩溃,但机器人正在运行。我已经尝试过使用线程,但没有成功。
【问题讨论】:
-
你不能只使用线程同时运行两个事件循环吗?因为您的问题看起来像是来自双事件循环。
标签: python pyqt pyqt5 python-asyncio discord.py