Python 使用pyodbc连接到*.accdb文件后,我无法在QLineEdit中键入韩语

Python 使用pyodbc连接到*.accdb文件后,我无法在QLineEdit中键入韩语,python,pyqt,pyqt5,pyodbc,Python,Pyqt,Pyqt5,Pyodbc,(Python 3.6.5(v3.6.5:f59c0932b4,2018年3月28日,16:07:46)[MSC v.1900 32位(英特尔)]在win32上) 我正在尝试使用pyqt5和pyodbc制作一个程序 QMainWindow中有一些QLineEdit小部件和QPushButton小部件。 我编写了一个连接到accdb文件的函数。 功能(插槽)连接到一个按钮 一切都很顺利。我可以连接到accdb文件并从中获取数据。但我发现,如果我在QLineEdit中键入韩语字符(Hangul),程

(Python 3.6.5(v3.6.5:f59c0932b4,2018年3月28日,16:07:46)[MSC v.1900 32位(英特尔)]在win32上)

我正在尝试使用pyqt5和pyodbc制作一个程序

QMainWindow中有一些QLineEdit小部件和QPushButton小部件。 我编写了一个连接到accdb文件的函数。 功能(插槽)连接到一个按钮

一切都很顺利。我可以连接到accdb文件并从中获取数据。但我发现,如果我在QLineEdit中键入韩语字符(Hangul),程序将以退出代码-1073741819(0xC0000005)停止

奇怪的是,如果我在_init___(self)中调用函数,它就可以正常工作,没有错误。但是,如果我通过单击按钮调用函数,尽管代码可以工作,但键入韩语字符会使程序停止。(拉丁字符可以。)

当我将mysql.connector与Maria DB而不是pyodbc一起使用时,类似的代码运行良好。但我别无选择,只能使用accdb文件,所以我尝试了pyodbc

下面的代码1可以正常工作。我可以在QLineEdit小部件中键入每个字符

    form_class_main = uic.loadUiType("UI.ui")[0]
    class Form_Main(QMainWindow, form_class_main):
        def __init__(self):
            super().__init__()
            self.setupUi(self)
            self.test1()

    def test1(self):
        cnx = pyodbc.connect(connStr)
        cnx.close()
        print("OK")
    form_class_main = uic.loadUiType("UI.ui")[0]
    class Form_Main(QMainWindow, form_class_main):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.btn1.clicked.connect(self.test1)

    def test1(self):
        cnx = pyodbc.connect(connStr)
        cnx.close()
        print("OK")
在我尝试在QLineEdit小部件中键入韩语之前,下面的代码2也可以正常工作

    form_class_main = uic.loadUiType("UI.ui")[0]
    class Form_Main(QMainWindow, form_class_main):
        def __init__(self):
            super().__init__()
            self.setupUi(self)
            self.test1()

    def test1(self):
        cnx = pyodbc.connect(connStr)
        cnx.close()
        print("OK")
    form_class_main = uic.loadUiType("UI.ui")[0]
    class Form_Main(QMainWindow, form_class_main):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.btn1.clicked.connect(self.test1)

    def test1(self):
        cnx = pyodbc.connect(connStr)
        cnx.close()
        print("OK")
使用上面的代码,如果我可以在单击btn1之前在QLineEdit中键入韩语字符。单击按钮后,(我可以做任何我想做的事情,但是)只要我尝试在QLineEdit小部件中键入韩语字符,程序就会停止


我怎样才能解决这个问题?如果没有解决方案,是否有其他方法替换pyodbc?

您使用的是什么版本的pyodbc?我使用的是pyodbc 4.0.27。我发现UI文件本身有问题。使用具有相同小部件的新UI文件,它运行良好。案件结案。谢谢大家。