В НИЖЕ ПРОГРАММЕ
tkmessagebox не всплывает, когда я впервые нажимаю кнопку «Создать», но работает во второй раз. Почему это так, и может ли кто-нибудь отладить проблему, созданную этим gui, с помощью at-designer. и ошибка "- [QNSApplication _setup:]: нераспознанный селектор отправлен в экземпляр 0x7fdcd3f65f60"
from PyQt5 import QtCore, QtGui, QtWidgets
from tkinter import messagebox
class Ui_MYSQL_CREATEDB(object):
def createdb(self):
import mysql.connector
try:
mydb=mysql.connector.connect(host='localhost', user='root',passwd='logon@123',database='python')
mycursor=mydb.cursor()
messagebox.showinfo(title='hello',message='hello')
except Exception:
messagebox.showerror('connection failed ')
def setupUi(self, MYSQL_CREATEDB):
MYSQL_CREATEDB.setObjectName("MYSQL_CREATEDB")
MYSQL_CREATEDB.resize(406, 239)
self.label = QtWidgets.QLabel(MYSQL_CREATEDB)
self.label.setGeometry(QtCore.QRect(50, 10, 281, 81))
font = QtGui.QFont()
font.setFamily("Comic Sans MS")
font.setPointSize(24)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(MYSQL_CREATEDB)
self.label_2.setGeometry(QtCore.QRect(10, 110, 171, 31))
font = QtGui.QFont()
font.setFamily("Comic Sans MS")
font.setPointSize(18)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.btncreate = QtWidgets.QPushButton(MYSQL_CREATEDB)
self.btncreate.setGeometry(QtCore.QRect(110, 160, 112, 32))
self.btncreate.setObjectName("btncreate")
self.btncreate.clicked.connect(self.createdb)
self.btncancel = QtWidgets.QPushButton(MYSQL_CREATEDB)
self.btncancel.setGeometry(QtCore.QRect(240, 160, 112, 32))
self.btncancel.setObjectName("btncancel")
self.txtDBname = QtWidgets.QLineEdit(MYSQL_CREATEDB)
self.txtDBname.setGeometry(QtCore.QRect(182, 110, 211, 31))
self.txtDBname.setObjectName("txtDBname")
self.txtDBname.raise_()
self.label.raise_()
self.label_2.raise_()
self.btncreate.raise_()
self.btncancel.raise_()
self.retranslateUi(MYSQL_CREATEDB)
QtCore.QMetaObject.connectSlotsByName(MYSQL_CREATEDB)
def retranslateUi(self, MYSQL_CREATEDB):
_translate = QtCore.QCoreApplication.translate
MYSQL_CREATEDB.setWindowTitle(_translate("MYSQL_CREATEDB", "Form"))
self.label.setText(_translate("MYSQL_CREATEDB", "CREATING DATABASE"))
self.label_2.setText(_translate("MYSQL_CREATEDB", "DATABASE NAME: "))
self.btncreate.setText(_translate("MYSQL_CREATEDB", "CREATE"))
self.btncancel.setText(_translate("MYSQL_CREATEDB", "CANCEL"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MYSQL_CREATEDB = QtWidgets.QWidget()
ui = Ui_MYSQL_CREATEDB()
ui.setupUi(MYSQL_CREATEDB)
MYSQL_CREATEDB.show()
sys.exit(app.exec_())