SQLite db への送信プッシュボタンをクリックすると、複数の QLineEdit オブジェクトを更新しようとしています。また、db を表示する QTableView もあります。送信ボタンはデータベースに行を追加しますが、保存はしません。新しく作成された行に行の編集を追加したいと思います。
import sys
from testdbtableform import *
from PyQt4 import *
from PyQt4 import QtSql, QtGui, QtCore
from PyQt4.QtSql import (QSqlDatabase, QSqlQuery, QSqlRelation,
QSqlRelationalDelegate, QSqlRelationalTableModel)
def createConnection():
db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('demomap.db')
db.open()
print (db.lastError().text())
return True
class MyForm(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.model = QtSql.QSqlTableModel(self)
self.model.setTable("userlist")
self.model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
self.model.select()
self.ui.tableView.setModel(self.model)
QtCore.QObject.connect(self.ui.Submit, QtCore.SIGNAL('clicked()'), self.dbinput)
def dbinput(self):
row = self.model.rowCount()
self.model.insertRow(row)
self.model.submitAll()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
if not createConnection():
sys.exit(1)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())
ユーザー名とメールの列に入力する 2 行の編集があります。それを正しく使用する方法の例を得ることができれば、残りの入力を理解することができます. 私はpythonとpyqtにかなり慣れていません。pyside に切り替える必要がある場合は、喜んで切り替えます。