我正在为我的论文做一个应用程序。这个应用程序将excel spreadhseet导入sqlite数据库并使用它。由于我不打算创建GUI,我使用了python中的sqlite3库并创建了一个巨大的库来处理它。但是现在我已经在PyQT 5中创建了一个GUI,我遇到了问题。
首先,快速提问,我不知道这是否是处理对话框的正确方法。我现在的方式是:
class Main_window(QtWidgets.QMainWindow, main_window.Ui_MainWindow):
def __init__(self....):
...
def showresultswindow(self):
if results_window != None:
results_window = Results_Window(self)
class Results_window(QtWidgets.QMainWindow, results_window.Ui_MainWindow):
def __init__(self, parent):
...
当它们只需要读取数据库时,它就可以工作,对话框打开并按预期工作。但现在我正在写一个对话框来写入数据库,我无法让它工作。
应用程序的主窗口有两个显示数据库的QSqlTableModels。为了将数据写入数据库,我所做的是:
但是当我创建对话框来编写数据时,我无法遵循该过程。当对话框在另一个线程中打开时,如果我关闭数据库,创建对话框然后打开它,在接受对话框并且必须写入数据时,数据库将被锁定。
我想过,只要对话框打开就会创建一个while循环,但它会挂起软件(无限循环时往往会这样做)。
我知道正确的应用程序方法是使用qtsql库来处理所有数据库输入和输出,但我必须重写一个长库,我更喜欢尝试另一个选项。即使这样做,我也不知道该怎么做:
非常感谢您的帮助!