class MySQLWorker(QObject): finished = pyqtSignal(bool, str)
def run(self):
try:
db = mysql.connector.connect(
host="127.0.0.1",
user="root",
password="",
database="quanlyvanphongpham"
)
if db.is_connected():
self.finished.emit(True, "
except mysql.connector.Error as e:
self.finished.emit(False, f"
class StationaryStoreApp(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
self.start_mysql_connection() # Run MySQL connection on a separate thread
def start_mysql_connection(self):
self.thread = QThread() # Create a separate thread
self.worker = MySQLWorker()
self.worker.moveToThread(self.thread) # Move worker to the thread
# Connect signals
self.thread.started.connect(self.worker.run)
self.worker.finished.connect(self.handle_mysql_result)
self.worker.finished.connect(self.thread.quit) # Exit thread when done
self.worker.finished.connect(self.worker.deleteLater)
self.thread.finished.connect(self.thread.deleteLater)
self.thread.start() # Start the thread
def handle_mysql_result(self, success, message):
print(message)
< /code>
Я пытался запустить в отдельном потоке, но он все еще приводил к замороженному интерфейсу, и MySQL всегда сообщал: прерванное соединение 177 к DB: «Не связанный» пользователь: «Unautenticated» хост: «Localhost» (Есть ошибка чтения пакетов связи)
Подробнее здесь: https://stackoverflow.com/questions/794 ... g-to-mysql
Мобильная версия