转到 QTableWidget 上视觉单元格的位置
Go To Position of Visual Cell on QTableWidget
我在PyQT5中有一个QTableWidget,我需要转到table的特定视觉位置。
我该怎么做?
当我说视觉时,我的意思是给出行和列,然后在 table 上直观地看到给定的行和列
你必须使用scrollToItem
方法,在下一部分中我将展示一个例子:
class Widget(QWidget):
def __init__(self, *args, **kwargs):
QWidget.__init__(self, *args, **kwargs)
hlayout = QHBoxLayout()
self.rbox = QSpinBox(self)
self.cbox = QSpinBox(self)
hlayout.addWidget(self.rbox)
hlayout.addWidget(self.cbox)
vlayout = QVBoxLayout(self)
vlayout.addLayout(hlayout)
nrows = 50
ncols = 30
self.rbox.setMaximum(nrows-1)
self.cbox.setMaximum(ncols-1)
self.table = QTableWidget(nrows, ncols, self)
vlayout.addWidget(self.table)
for r in range(nrows):
for c in range(nrows):
it = QTableWidgetItem("{}-{}".format(r, c))
self.table.setItem(r, c, it)
self.rbox.valueChanged.connect(self.moveToItem)
self.cbox.valueChanged.connect(self.moveToItem)
def moveToItem(self):
it = self.table.item(self.rbox.value(), self.cbox.value())
self.table.scrollToItem(it)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
我在PyQT5中有一个QTableWidget,我需要转到table的特定视觉位置。
我该怎么做?
当我说视觉时,我的意思是给出行和列,然后在 table 上直观地看到给定的行和列
你必须使用scrollToItem
方法,在下一部分中我将展示一个例子:
class Widget(QWidget):
def __init__(self, *args, **kwargs):
QWidget.__init__(self, *args, **kwargs)
hlayout = QHBoxLayout()
self.rbox = QSpinBox(self)
self.cbox = QSpinBox(self)
hlayout.addWidget(self.rbox)
hlayout.addWidget(self.cbox)
vlayout = QVBoxLayout(self)
vlayout.addLayout(hlayout)
nrows = 50
ncols = 30
self.rbox.setMaximum(nrows-1)
self.cbox.setMaximum(ncols-1)
self.table = QTableWidget(nrows, ncols, self)
vlayout.addWidget(self.table)
for r in range(nrows):
for c in range(nrows):
it = QTableWidgetItem("{}-{}".format(r, c))
self.table.setItem(r, c, it)
self.rbox.valueChanged.connect(self.moveToItem)
self.cbox.valueChanged.connect(self.moveToItem)
def moveToItem(self):
it = self.table.item(self.rbox.value(), self.cbox.value())
self.table.scrollToItem(it)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())