تسجيل الدخول   الأسئلة المتكررة     بحث
اليوم هو الجمعه سبتمبر 10, 2010 11:43 pm

جميع الأوقات تستخدم GMT




إرسال موضوع جديد الرد على الموضوع  [ 4 مشاركة ] 

الكاتب رسالة
 عنوان المشاركة: كيفية اغلاق قاعدة البيانات في QtSql
مشاركةمرسل: الجمعه فبراير 12, 2010 5:30 pm 
غير متصل
عضو نشيط
عضو نشيط



السلام عليكم ورحمة الله

كتبت كود للتعلم استخدم فيه 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 المفتوح مع اغلاق التطبيق


أعلى
 يشاهد الملف الشخصي  
 
 عنوان المشاركة: Re: كيفية اغلاق قاعدة البيانات في QtSql
مشاركةمرسل: الاثنين فبراير 15, 2010 10:32 am 
غير متصل
فريق عمل الموقع والمجلة
فريق عمل الموقع والمجلة



بيتهيألى المنطقى انك تعيد تعريف ال closeEvent
http://doc.trolltech.com/4.6/qwidget.html#closeEvent

وتحرر فيه الكونكشن

_________________


أعلى
 يشاهد الملف الشخصي  
 
 عنوان المشاركة: Re: كيفية اغلاق قاعدة البيانات في QtSql
مشاركةمرسل: الاثنين فبراير 15, 2010 4:43 pm 
غير متصل
فريق عمل الموقع والمجلة
فريق عمل الموقع والمجلة
صورة العضو الشخصيه



السلام عليكم

ماذا عن close و removeDatabase

http://qt.nokia.com/doc/4.6/qsqldatabase.html#close
http://qt.nokia.com/doc/4.6/qsqldatabas ... veDatabase

_________________
Qt + KDE = Enjoy

My Blog


أعلى
 يشاهد الملف الشخصي  
 
 عنوان المشاركة: Re: كيفية اغلاق قاعدة البيانات في QtSql
مشاركةمرسل: الثلاثاء فبراير 16, 2010 7:33 am 
غير متصل
عضو نشيط
عضو نشيط



اضفت الميثود دي للكلاس

CODE:
def  closeEvent(self, event):
        print 'clooooooooooooosing'
        self.db.close()
        QtSql.QSqlDatabase.removeDatabase('book.db')


ونفس الايرور بيطلع
وبعد شوية جوجل عرفت حل بس غريب جدا هو اني الغي الدالة main الرئيسية واخليها تشتغل علي طول

CODE:
#def main():
app = QtGui.QApplication(sys.argv)
addressbook=AddressBook()
addressbook.database()
addressbook.show()
addressbook.connections()

sys.exit(app.exec_())

#
#if __name__ == '__main__':
#    main()


كده مافيش ايرور حتي لما باحذف الميثود بتاعت closeEvent
:o


أعلى
 يشاهد الملف الشخصي  
 
عرض مشاركات سابقة منذ:  مرتبة بواسطة  
إرسال موضوع جديد الرد على الموضوع  [ 4 مشاركة ] 

جميع الأوقات تستخدم GMT


المتواجدون الآن

المستخدمون المتصفحون لهذا المنتدى: لا يوجد أعضاء مسجلين متصلين و 1 زائر


لا تستطيع كتابة مواضيع جديدة في هذا المنتدى
لا تستطيع كتابة ردود في هذا المنتدى
لا تستطيع تعديل مشاركاتك في هذا المنتدى
لا تستطيع حذف مشاركاتك في هذا المنتدى
لا تستطيع إرفاق ملف في هذا المنتدى

البحث عن:
الانتقال الى:  

احصائيات كيوتي العربي في رتب

تطوير qt-ar.org

All Rights Reserved to Sama for Electronic Services, Egypt [Dkhila | El-Sinbelawen], This Site Using phpBB Script, Translated By phpBBArabia