2012-01-24 12 views
1

さて、私はQtの初心者です。問題があります。QListWidgetItemがスクロールによって隠されているかどうかを知る方法?

私のUIには7つのアイテムを持つQListWidgetがあります。ちょうど4アイテムが表示され、もう1つはスクロールバーを使用するために表示されます。 QListWidetの上と下に矢印イメージを表示したい場合は、スクロールする項目があるよりも表示されます。

私は項目が隠されているかどうかを確認することができますが、setHidden()関数によって隠されているかどうかを確認することができます。そしてそれはスクロールによっていつ隠されるのですか?実行時にこれを見ることはできますか?アイテムはそこにありますが、スクロールはそれを隠しているので、そうですか?

私はここにいくつかの記事を検索しましたが、見つけられませんでした。申し訳ありませんが私の英語、混乱するかもしれないが、誰かが私を助けることができる場合...

ありがとうたくさん!

答えて

0

だから、それを行う基本的な例があります。あなたは、私はQtのにスクロールバーポリシーを設定しているコードから見ることができるように

MainWindow::MainWindow(QWidget *parent) : 
QMainWindow(parent), 
ui(new Ui::MainWindow) 

{

ui->setupUi(this); 

QListWidget *listW = new QListWidget; 
//Add some items 
for(int i = 0; i < 20; i++) { 
    QListWidgetItem *item = new QListWidgetItem("Item" + QString::number(i)); 
    listW->addItem(item); 
} 

listW->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); 
listW->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); 
//Set reimplemented scroll bar 
listW->setVerticalScrollBar(new ScrollBar); 
setCentralWidget(listW); 

}

:::まず、ここでメイン・ウィンドウクラス 実装のリストがありますScrollBarAsNeeded。これにより、スクロールバーからのイベントの表示/非表示に対応できるようになりました。

ScrollBar::ScrollBar(QWidget *parent) : 
QScrollBar(parent) 
{ 
} 


void ScrollBar::hideEvent(QHideEvent *e) 
{ 
    emit showTip(false); 
} 


void ScrollBar::showEvent(QShowEvent *e) 
{ 
    emit showTip(true); 
} 

は今、あなたは画像を描画するスロットにScrollBarからshowTip(ブール値)信号を接続することができます。そして、ここではQScrollBarの再実装したものです。

+0

ありがとう@Neox、私はこれを使用しようとし、答えを投稿します。 –

関連する問題