2017-08-31 9 views
1

は現在、私はui.widgetにいくつかのQLineEditsを追加するには、このコードを持っているが、私は、あまりにも多くの要素の場合には垂直方向のスクロールバーを必要とする - >限られたスペース:使用スクロールバーはQGridLayout

QGridLayout *gridLayout = new QGridLayout(ui.widget); 

int rowIndex = 0, colIndex = 0; 
for(auto number : m_numbers) 
{ 
    QLineEdit *lineEdit = new QLineEdit(); 
    gridLayout->addWidget(lineEdit, rowIndex, colIndex, Qt::AlignLeft); 

    if(colIndex == 7) 
    { 
     colIndex = 0; 
     ++rowIndex; 
    } 
    else ++colIndex; 
} 
ui.widget->setLayout(gridLayout); 

私はそれをスクロールすることができますどのように?

答えて

1

使用QScrollBar:QScrollBarウィジェットは、垂直または水平スクロールバーを提供します。

あなたのウィジェットの修正サイズを定義し、ユーザーがQLineEditを多すぎて作成した場合は、カスタマイズしたQScrollBarをそのウィジェットに追加してください。この画像のように

QScrollBar * scroll = new QScrollBar(Qt::Vertical, ui->widget); 

または使用QScrollAreaは:Screenshot

https://github.com/aghilpro/QScrollArea

これはgithub download here上のあなたの質問のためのサンプルプロジェクトです。

+0

私のコードに基づいて完全な例がありますか? Thx – leon22

+0

私はQScrollAreaがなぜあなたには良いと思いますか? QScrollBarもそのジョブを実行できます。 – aghilpro

+0

私はそれを変更しようとしましたが動作しません! ui.widget-> setLayout(gridLayout)の後。 QScrollArea * scrollArea =新しいQScrollAreaを追加しました。 scrollArea-> setWidget(ui.widget); - それは要素のない空です。 – leon22

関連する問題