我如何连接一列QTableWidget

问题描述 投票:1回答:1

当用户更改其值时,我只需要连接一列,因为如果使用

self.Table.cellChanged()如果从数据库中更改了所有值,它将发送信号]

示例(请查看#Comment向下)

from PyQt5 import QtWidgets, QtCore, QtGui

class SalesMan(object):

    def __init__(self, window):
        window.resize(650, 600)
        window.setWindowTitle('Example')
        self.Window = window
        self.Barcode = QtWidgets.QLineEdit(window)
        self.Table = QtWidgets.QTableWidget(100, 6, window)
        self.Table.setGeometry(0, 0, 650, 600)
        self.Table.setLayoutDirection(QtCore.Qt.RightToLeft)
        self.Table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
        # need Call if column(0,1) Changed, Not All Column
        self.Table.cellChanged.connect(self.Ex)

    def Ex(self):
        print('Some')


if __name__ == '__main__':
    import sys

    app = QtWidgets.QApplication(sys.argv)
    form = QtWidgets.QMainWindow()
    d = SalesMan(form)
    form.show()
    sys.exit(app.exec_())

当用户更改其值时,我只需要连接一列,因为如果您使用self.Table.cellChanged(),如果从数据库中更改了所有值,它将发送信号。Example(Look ...

python pyqt pyqt5
1个回答
0
投票

您要做的是根据通过信号传输的参数过滤列:

class SalesMan(object):
    def __init__(self, window):
        window.resize(650, 600)
        window.setWindowTitle("Example")
        self.Window = window
        self.Barcode = QtWidgets.QLineEdit(window)
        self.Table = QtWidgets.QTableWidget(100, 6, window)
        self.Table.setGeometry(0, 0, 650, 600)
        self.Table.setLayoutDirection(QtCore.Qt.RightToLeft)
        self.Table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
        # need Call if column(0,1) Changed, Not All Column
        self.Table.cellChanged.connect(self.Ex)

    def Ex(self, row, column):
        if column == 0:
            print("Some", row, column)
© www.soinside.com 2019 - 2024. All rights reserved.