原著
QTableView は自動的に一番下までスクロールし、QTextBrowser と同様のスクロール効果を実現します。
序文
私はしばらく QT を勉強していて、CSDN で多くのことを学んだので、貢献する必要があります。
提示:原创文章,转载请注明本地址
1. 実現効果
Qtコントロール、ScrollViewで項目を追加した後に自動的に下までスクロールする方法。これは、新しい項目を追加した後に QTextBrowser が自動的に一番下までスクロールする効果と似ています (一番下にある場合は自動的にスクロールし、一番上にある場合はスクロールを停止します)。長時間オンラインで検索しましたが、具体的な実装コードが見つかりませんでした。たくさんの方法を試しましたが、結果は良くありませんでした。突然、実装コードを思いつきました。シンプルで効率的です。使用できるようにここに投稿しました:)
2. コードを直接アップロードします
1.コード
例は次のとおりです (オリジナル。転載したい場合はその旨を明記してください)。
# 初始化TableView
def initTableView():
self.Table = QTableView()
# 禁用编辑
self.Table.setEditTriggers(QAbstractItemView.NoEditTriggers)
# 禁用Tab键导航
self.Table.setTabKeyNavigation(False)
# 去除选中虚线框
self.Table.setFocusPolicy(Qt.NoFocus)
# 设置表格参考线是否可见
self.Table.setShowGrid(False)
# 设置是否启用滚动条
self.Table.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) # 禁用水平滚动条
self.Table.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) # 启用垂直滚动条
# 前面一通设置无关紧要,后面这里是关键,定义垂直滚动条用来设置自动滚动
self.TableScrollBar = self.Table.verticalScrollBar()
# 当增加新条目后
def appendNewData():
#.......
#append
#.......
# 这里设置自动滚动,每增加一个新条目就自动滚动到最后。就这么简单 :)
if self.TableScrollBar.value() >= self.TableScrollBar.maximum():
self.Table.scrollToBottom()
要約する
要約するものは何もありません。もっと読んで、もっと練習してください。一部の効果はオンラインでは簡単に入手できません。もっと考えれば、自分で達成できます。