转到 QTableWidget 上可视单元格的位置
Posted
技术标签:
【中文标题】转到 QTableWidget 上可视单元格的位置【英文标题】:Go To Position of Visual Cell on QTableWidget 【发布时间】:2017-11-29 04:37:53 【问题描述】:我在 PyQT5 中有一个 QTableWidget,我需要转到表格的特定视觉位置。
我该怎么做?
当我说视觉时,我的意思是给出行和列,然后在表格上直观地看到给定的行和列
【问题讨论】:
您能解释一下您所说的转到表格中的某个位置是什么意思吗? 假设我想查看第 20 行和第 20 列,那么表格小部件必须直观地显示该位置 让我们看看我是否理解你,因为表格有很多元素,只有一些项目是可见的,那么你想让我通过移动滚动条来给一个行和列这个项目是可见的。我是对的? 是的,这就是我想要的 ¿QTableWidget 还是 QTableView? 【参考方案1】:你必须使用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_())
【讨论】:
以上是关于转到 QTableWidget 上可视单元格的位置的主要内容,如果未能解决你的问题,请参考以下文章
在pyqt中隐藏qtablewidget中选定单元格的边框?