我有2个窗口,第一个包含要更新的qtablewidget。因此,当我双击一个单元格时,我打开了第二个窗口,以便从qtableview中选择特定的索引。 我成功双击打开了第二个窗口,并获得了所选行的索引。 但是,当我将其发送到第一个窗口时,我不确定是否以正确的方式进行了操作,并且无法在qtablewidget中找到如何使用获取值来更新相关单元格。
class Ui_Form(object):
def setupUi(self, Form):
self.ID = Inds()
self.ID.got_ID.connect(self.show_it)
Form.setObjectName("Form")
Form.resize(761, 563)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("def.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
Form.setWindowIcon(icon)
self.tableDF = QtWidgets.QTableWidget(Form)
self.tableDF.setGeometry(QtCore.QRect(20, 40, 301, 511))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(10)
self.tableDF.setFont(font)
self.tableDF.setAutoFillBackground(False)
self.tableDF.setAlternatingRowColors(True)
self.tableDF.setObjectName("tableDF")
self.tableDF.setColumnCount(0)
self.tableDF.setRowCount(0)
self.tableDF.horizontalHeader().setVisible(True)
self.tableDF.verticalHeader().setVisible(True)
self.tableDF.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked)
self.tableDF.doubleClicked.connect(self.listindividuals)
self.tableDF.setTabKeyNavigation(False)
self.tableDF.setDragDropOverwriteMode(False)
def listindividuals(self):
self.window = QtWidgets.QMainWindow()
self.ui = Inds()
self.ui.setupUi(self.window)
self.window.show()
def show_it(self, valeur):
self.vv=valeur
print(valeur)
class Inds(QtWidgets.QWidget):
got_ID = QtCore.pyqtSignal(str)
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(757, 582)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("def.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
dfx = pd.read_csv("monfichier.csv", delimiter=';')
model = PandasModel(dfx)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.tableView = QtWidgets.QTableView(self.centralwidget)
self.tableView.setGeometry(QtCore.QRect(10, 40, 721, 471))
self.tableView.setAutoFillBackground(False)
self.tableView.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.tableView.setDragDropOverwriteMode(False)
self.tableView.setAlternatingRowColors(True)
self.tableView.setObjectName("tableView")
self.tableView.setModel(model)
self.tableView.doubleClicked.connect(self.sendID)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 757, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Liste des individus"))
def sendID(self):
#self.message = "Salut !!!"
index=self.tableView.selectionModel().currentIndex()
value = index.siblingAtColumn(0).data()
#print("index : " + str(value))
self.got_ID.emit(value)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
uix = Ui_Form()
uix.setupUi(Form)
Form.show()
sys.exit(app.exec_())
有人可以帮我吗?