【问题标题】:Go To Position of Visual Cell on QTableWidget转到 QTableWidget 上可视单元格的位置
【发布时间】:2017-11-29 04:37:53
【问题描述】:

我在 PyQT5 中有一个 QTableWidget,我需要转到表格的特定视觉位置。

我该怎么做?

当我说视觉时,我的意思是给出行和列,然后在表格上直观地看到给定的行和列

【问题讨论】:

  • 您能解释一下您所说的转到表格中的某个位置是什么意思吗?
  • 假设我想查看第 20 行和第 20 列,那么表格小部件必须直观地显示该位置
  • 让我们看看我是否理解你,因为表格有很多元素,只有一些项目是可见的,那么你想让我通过移动滚动条来给一个行和列这个项目是可见的。我是对的?
  • 是的,这就是我想要的
  • ¿QTableWidget 还是 QTableView?

标签: python python-3.x pyqt pyqt5 qtablewidget


【解决方案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_())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2013-11-14
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 2015-04-07
    相关资源
    最近更新 更多