2011-09-15 21 views
2

10,000レコードのQTableWidgetを使用しています。一度に30行しか表示せず、残りの行を非表示にする必要があります。垂直スクロールバーをドラッグ/クリックすると、対応する行が表示され、他の行は非表示になります。QTableWidgetの残りの行を非表示にする方法3035行を表示する方法

つまり、上部のスクロールボタンをクリックすると上部のアイテムが1つ表示され、下部のアイテムが非表示になります。それはスクロールするときにも起こるはずです。

誰でもこの作業を手伝ってもらえますか?

+1

あなたがしたいことは私には分かりません。 – user763305

答えて

0

私は、スライダ/スクロールバーのトラッキングのために、 'setTracking(true)'と 'valueChanged(int)'のどちらかの信号の処理が必要であるとニコラスが言ったように、上下のボタンのイベントをトラップできると思います。または 'sliderMoved(int)'。

おかげで、 プラディープ

0

Qt残念ながら、これはあなたのために簡単にはできませんが、それを行う方法と手段があります。ウィジェットをどのように配置しているかにもよりますが、最初に30行を読み込むように設定することをお勧めします。スクロールボタンから来た信号をトラップして、テーブルウィジェットに上/下項目を削除するよう指示する必要があります次のものを追加すると、この方法にはトレードオフがありますが、隠れた行の大きなリストを維持しようとするよりも簡単になります。

+0

フィードバックいただきありがとうございます! 私も同じ考えがあります。しかし、ドラッグ中にスクロールバーを追跡する方法はありますか? – Shyam

+0

スクロールバーは、それがドラッグされるたびに量だけ移動したことを出します。その信号にも接続できます。 –

0

私は物事を明示的に表示しているか隠しているかがあなたが望む方法であるかどうかわかりません。代わりに、Qtのモデルとビュークラスを見てください。データベースを使用している場合は、これらを処理するQSqlTableModelをご覧ください。そうでなければ、Model-View programming文書、そのrelated examples、特に約の部分を見てください(ただし、モデルでは10,000レコードがほとんどの場合多くありません)。

+0

私はデータベースの代わりにcsvファイルを使用しています – Shyam

0

アイテムに画素からのスクロールテーブルを変更する方法があります。テーブルのデザイナプロパティエディタで、QAbstractItemViewセクションにVerticalScrollModeの選択があります。これはScrollPerPixelまたはおそらく何か、ScrollPerItemのいずれかです。

これは、信号の動きをピクセルから計算しやすくする項目に変更する可能性があります。

私は4.4.3を使用しています。

関連する問題