QTableView は自動的に一番下までスクロールし、QTextBrowser と同様のスクロール効果を実現します。

原著

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()

要約する

要約するものは何もありません。もっと読んで、もっと練習してください。一部の効果はオンラインでは簡単に入手できません。もっと考えれば、自分で達成できます。

おすすめ

転載: blog.csdn.net/flash_temp/article/details/125285712