2017-11-29 2 views
0

私はPyTT5にQTableWidgetを持っており、テーブルの特定の視覚的な位置に移動する必要があります。QTableWidget上のビジュアルセルの位置に移動

どうすればいいですか?

私は視覚的と言うとき、私は、行と列を与えることを意味し、視覚的に

+0

表の中でポジションに行くと言ったらどういう意味でしょうか? – eyllanesc

+0

行20と列20を見たいと思うと、テーブルウィジェットは視覚的にその位置を表示する必要があります –

+0

テーブルには多くの要素があるため、理解できるかどうかを見てみましょう。この項目は、スクロールバーを移動すると表示されます。私は正しいですよ? – eyllanesc

答えて

0

あなたは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_()) 
+0

ありがとう、あなたは私を救った –

関連する問題