私たちが事を始める前に、これはQt Scroll Area does not add in scroll barsの重複の可能性がありますが、ユーザーから提供された回答とOPのために働いていた答えは私にとってはうまくいきません。おそらくバージョンと関係しているかもしれないのではないかと恐れていますか?または私は何かを逃している? (それは可能です!)スクロールエリアに項目を動的に挿入し、スクロールバーをQtに読み込む方法は?
よしは、Qtのを知っている人のために、私は初心者です、私はかなり愚かな問題であるように見えるものを持っているが、私に頭痛の多くを与えている:
私がしたいですプッシュボタンを押してアイテムをコンテナに追加すると、それを下にスクロールすることができます。それと同じくらい簡単です。
私はおそらくscrollAreaにレイアウトを設定すると、その仕事をするだろうと思っていました。それは本当に私が望むように私の項目を追加しますが、scrollBarをロードしません。私はすでにScrollPolicyをチェックしていますが、何も問題はありません。 GVBoxLayoutはサイズを増やさず、スクロール領域をスクロールさせないようなものです。
誰かがそれを修正する手掛かりを持っていますか?以下
コード:
saleWindow.h
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QListWidget>
#include<QString>
namespace Ui {
class SaleWindow;
}
class SaleWindow : public QMainWindow
{
Q_OBJECT
public:
explicit SaleWindow(QWidget *parent = 0);
~SaleWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::SaleWindow *ui;
QVBoxLayout *gBoxLayout;
QMap<QString, QListWidget *> m_mappings;
};
#endif // SALEWINDOW_H
saleWindow.cpp
#include "salewindow.h"
#include "ui_salewindow.h"
#include <iostream>
#include <QGroupBox>
#include <QLabel>
//#include <QtSql/QSqlDatabase>
//#include <QtSql>
#include <QtWidgets/QPushButton>
SaleWindow::SaleWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::SaleWindow),
gBoxLayout(new QVBoxLayout())
{
ui->setupUi(this);
// Adding layout to scrollbar
{
ui->scrollArea_sales->setWidgetResizable(true);
ui->scrollArea_sales->setLayout(gBoxLayout);
QWidget *central = new QWidget;
ui->scrollArea_sales->setWidget(central);
}
}
SaleWindow::~SaleWindow()
{
delete ui;
delete gBoxLayout;
}
void SaleWindow::on_pushButton_clicked()
{
QGroupBox *sale = new QGroupBox();
sale->setTitle("minha venda");
gBoxLayout->addWidget(sale);
ui->scrollArea_sales->setLayout(gBoxLayout);
}
レイアウトをスクロールエリアに設定するのではなく、そのウィジェットにレイアウトを設定する必要があります。 – thuga
それで、代わりに 'central-> setLayout(gBoxLayout);'を実行する必要がありますか?そうであれば、期待どおりに動作しません。 –