0
所以我得到了我正在建設的項目,我有QDialog與QTableView,QPushButton和QLineEdit。PyQt5:QSqlTableModel連接QTableView和QLineEdit
我從數據庫中創建了數據模型,我創建了映射器,將數據從數據庫設置到LineEdit並將模型提供給QTableView。 所以我已經嘗試並沒有成功將表連接到LineEdits。
做這樣的事情,這些「當我點擊它填補與數據LineEdit行是在該行上,並保存數據時編輯」 在這裏我得到了什麼至今:
from ui_categorias import Ui_Dialog
from PyQt5.Qt import QMessageBox, QDialog, QDataWidgetMapper
from PyQt5.QtSql import QSqlRelationalTableModel, QSqlTableModel
class frmCategories(QDialog, Ui_Dialog):
def __init__(self, parent = None, dbCon=None, strTblName=None):
super(frmCategories, self).__init__(parent=None)
self.setupUi(self)
#Criando o Model
self.model = QSqlTableModel(self,dbCon)
self.model.setTable(strTblName)
self.model.select()
a = self.model
self.mapFields()
def mapFields(self):
id, nome, descricao, comentarios,activo = range(0,5)
'''
Esta funcao estabekece as ligacoes entre os widgets e o modelo
'''
self.mapper = QDataWidgetMapper()
self.mapper.setModel(self.model)
self.mapper.addMapping(self.LECodigo, id)
self.mapper.addMapping(self.LENome, nome)
self.mapper.addMapping(self.PTEDescricao, descricao)
self.mapper.addMapping(self.PTEComentarios, comentarios)
self.mapper.addMapping(self.CBActivo, activo)
self.mapper.toFirst()
self.TVCategorias.setModel(self.model)
的ui_file:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/Users/chernomirdinmacuvele/Documents/workspace/PescArt2.0/UserInt/ui_categorias.ui'
#
# Created by: PyQt5 UI code generator 5.8.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(407, 486)
self.label_3 = QtWidgets.QLabel(Dialog)
self.label_3.setGeometry(QtCore.QRect(7, 68, 77, 51))
self.label_3.setObjectName("label_3")
self.PTEComentarios = QtWidgets.QPlainTextEdit(Dialog)
self.PTEComentarios.setGeometry(QtCore.QRect(90, 128, 301, 71))
self.PTEComentarios.setObjectName("PTEComentarios")
self.label_4 = QtWidgets.QLabel(Dialog)
self.label_4.setGeometry(QtCore.QRect(7, 128, 91, 71))
self.label_4.setObjectName("label_4")
self.TVCategorias = QtWidgets.QTableView(Dialog)
self.TVCategorias.setGeometry(QtCore.QRect(7, 232, 391, 211))
self.TVCategorias.setObjectName("TVCategorias")
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(7, 39, 77, 21))
self.label.setObjectName("label")
self.CBActivo = QtWidgets.QCheckBox(Dialog)
self.CBActivo.setGeometry(QtCore.QRect(93, 208, 81, 20))
self.CBActivo.setObjectName("CBActivo")
self.LECodigo = QtWidgets.QLineEdit(Dialog)
self.LECodigo.setGeometry(QtCore.QRect(90, 8, 301, 21))
self.LECodigo.setObjectName("LECodigo")
self.label_2 = QtWidgets.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(7, 8, 77, 21))
self.label_2.setObjectName("label_2")
self.LENome = QtWidgets.QLineEdit(Dialog)
self.LENome.setGeometry(QtCore.QRect(90, 39, 301, 21))
self.LENome.setObjectName("LENome")
self.PTEDescricao = QtWidgets.QPlainTextEdit(Dialog)
self.PTEDescricao.setGeometry(QtCore.QRect(90, 70, 301, 51))
self.PTEDescricao.setObjectName("PTEDescricao")
self.horizontalLayoutWidget = QtWidgets.QWidget(Dialog)
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(10, 449, 391, 32))
self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.PEEditar = QtWidgets.QPushButton(self.horizontalLayoutWidget)
self.PEEditar.setObjectName("PEEditar")
self.horizontalLayout.addWidget(self.PEEditar)
self.PBGuardar = QtWidgets.QPushButton(self.horizontalLayoutWidget)
self.PBGuardar.setObjectName("PBGuardar")
self.horizontalLayout.addWidget(self.PBGuardar)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Recursos Pesqueiros"))
self.label_3.setText(_translate("Dialog", "Descricao:"))
self.label_4.setText(_translate("Dialog", "Comentarios:"))
self.label.setText(_translate("Dialog", "Nome:"))
self.CBActivo.setText(_translate("Dialog", "Activo"))
self.label_2.setText(_translate("Dialog", "Codigo:"))
self.PEEditar.setText(_translate("Dialog", "Editar"))
self.PBGuardar.setText(_translate("Dialog", "Guardar"))
請顯示Ui_Dialog代碼。 – eyllanesc
當你問一個問題時,你必須提供一個[最小,完整和可驗證的例子](https://stackoverflow.com/help/mcve) – eyllanesc
你去那裏剛剛編輯的ui_file – Fe3back