السلام عليكم ورحمة الله
كتبت كود للتعلم استخدم فيه PyQt4.Qsql الكود يعمل جيد ولكن المشكلة انه عند اغلاق التطبيق تظهر في الترمنال هذه الرسالة
CODE:
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
وهذا هو الكود
CODE:
#!/usr/bin/python
import sys
from PyQt4 import QtGui, QtCore, QtSql
from Ui_AddressBook import *
class AddressBook(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self,parent)
self.ui=Ui_MainWindow()
self.ui.setupUi(self)
self.center()
def center(self):
screen = QtGui.QDesktopWidget().screenGeometry()
size = self.geometry()
self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)
def connections(self):
self.connect(self.ui.btn_add, QtCore.SIGNAL('clicked()'), self.addEntry)
def database(self):
self.db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
self.db.setDatabaseName("book.db")
self.db.open()
self.query = QtSql.QSqlQuery()
try:
self.query.exec_('CREATE TABLE contacts (name TEXT,phone TEXT ,Email TEXT)')
except:
pass
self.model = QtSql.QSqlTableModel(self)
self.model.setTable("contacts")
self.model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit);
self.model.select()
self.model.setHeaderData(0, QtCore.Qt.Horizontal, ("Name"))
self.model.setHeaderData(1, QtCore.Qt.Horizontal, ("Phone"))
self.model.setHeaderData(2, QtCore.Qt.Horizontal, ("Email"))
self.ui.tableView.setModel(self.model)
self.ui.tableView.show()
def addEntry(self):
name=str(self.ui.txt_name.text())
phone=str(self.ui.txt_phone.text())
email=str(self.ui.txt_email.text())
stmnt="INSERT INTO contacts (name,phone,email) ""VALUES ("+"'"+name+"',"+"'"+phone+"',"+"'"+email+"'"+")"
self.query.exec_(stmnt)
def main():
app = QtGui.QApplication(sys.argv)
addressbook=AddressBook()
addressbook.database()
addressbook.show()
addressbook.connections()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
كيف اجعله يقوم باغلاق الconnection المفتوح مع اغلاق التطبيق