0

私の質問は簡単です。QScrollArea に QScrollBar を設定するにはどうすればよいですか。私は多くのことをテストしましたが、何も機能しません... QScrollArea を QTabWidget に設定するのは問題でしょうか? コードは次のとおりです。

void    GamesWindow::createTabSucces()
{
    std::string nameImg;

    _succesPage = new QWidget(_tab);
    _tab->addTab(_succesPage, "      Succes       ");

    scrollArea = new QScrollArea(_succesPage);
    scrollArea->setBackgroundRole(QPalette::Dark);
    scrollArea->setFixedSize(500,500);
    /*  Integration of QScrollBar  */
    for (int i = 0; i < 45; i++)
    {
        nameImg = "img/allAchiv/";
        nameImg += intToString(i + 1);
        nameImg += ".jpg";
        _imgSucc[i] = new QLabel(scrollArea);
        _imgSucc[i]->setPixmap(QPixmap(QString(nameImg.c_str())));
        _imgSucc[i]->setGeometry((14 + (85 * (i % 5))), 46 + ((i / 5) * 85), 60, 60);
    }
}

実際、QScrollArea (8 ~ 9 行の写真など) が作成されたタブに写真を追加しますが、表示されるのは 5 つだけで、残りは定義されたゾーンの外にある下部にあるため非表示になります。

何か案が ?ありがとう。

4

3 に答える 3

1

絶対です:

  • ページにレイアウトを追加する ( QVBoxLayout)
  • そのページ レイアウトにスクロール領域を追加する
  • viewport()スクロール領域のウィジェットにレイアウトを追加します( QVBoxLayout)
  • そのビューポート レイアウトに QLabels を追加します

この方法では、各ラベルで setGeometry を呼び出す必要はありません

于 2013-04-11T01:18:51.940 に答える
0

タブウィジェットにスクロールを追加できないことはほぼ確実ですが、私の考えは、表示できるタブをさらに作成して、デフォルトでスライダーが表示されるかどうかを確認することです。

于 2013-04-11T00:34:59.627 に答える