QFrame* MainWindow::initFilesListFrame(QWidget *parent) { QScrollArea *scrollFrame = new QScrollArea(parent); QFrame *frame = new QFrame(scrollFrame); QVBoxLayout *layout = new QVBoxLayout(frame); layout->setContentsMargins(0, 0, 0, 0); layout->setAlignment(Qt::AlignTop); layout->addWidget(filesListWidget); layout->addSpacing(25); layout->addWidget(initDragFrame(frame), 0, Qt::AlignHCenter); layout->addSpacing(25); scrollFrame->setWidget(frame); scrollFrame->setAcceptDrops(true); scrollFrame->installEventFilter(this); scrollFrame->setWidgetResizable(true); scrollFrame->setStyleSheet("QFrame {" "border: none;" "}" "QScrollBar:vertical {" "background: white;" "width: 8px;" "}" "QScrollBar::handle:vertical {" "background: grey;" "min-height: 20px;" "}" "QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {" "width: 0px;" "height: 0px;" "}"); QFrame *mainFrame = new QFrame(parent); QVBoxLayout *mainLayout = new QVBoxLayout(mainFrame); FixedHeaderView *headerView = new FixedHeaderView(Qt::Horizontal, mainFrame); headerView->setModel(new FilesListModel(filesList, this)); headerView->setStyleSheet("QHeaderView::section {" "background: transparent;" "border-style: none;" "border-bottom: 1px solid rgb(207, 207, 207);" "border-right: 1px solid rgb(207, 207, 207);" "}" "QWidget {" "font: bold 11px \"Arial\";" "color: rgb(58, 58, 58);" "}"); headerView->setFixedHeight(30); headerView->setMinimumSectionSize(150); headerView->resizeSection(0, 250); headerView->resizeSection(1, 400); headerView->setFixedHeight(30); mainLayout->setMargin(0); mainLayout->setSpacing(0); mainLayout->addWidget(headerView); mainLayout->addWidget(scrollFrame); connect(headerView, SIGNAL(sectionResized(int,int,int)), filesListWidget, SLOT(resizeSection(int, int, int))); connect(headerView, SIGNAL(settingsButtonClicked()), SIGNAL(incrementSettingsClicked())); //connect(headerView, &FixedHeaderView::settingsButtonClicked, this, [=](){ initSettingsFrame(); }); connect(filesListWidget, &FilesListWidget::fileSelected, this, [=](int index) { if (index >= 0) { QRect rect = filesListWidget->visualRect(filesListWidget->currentIndex()); scrollFrame->ensureVisible(rect.x(), rect.y() + rect.height(), 0, rect.height()); } }); return mainFrame; }