qt通过代码创建滚动区域,添加滚动区域到窗口
生活随笔
收集整理的這篇文章主要介紹了
qt通过代码创建滚动区域,添加滚动区域到窗口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引言
繼承于QWidget創建的項目,要想在QWidget中添加很多子控件,考慮到若是子控件的數目不確定,太多的時候就需要添加滾動條來實現滾動查看,于是可以自定義一個類,在該類中實現滾動區域和滾動窗口的創建,然后將該自定義的類提升為QWidget。
實現
下面是自定義的滾動區域類
scrolldisplaywidget.h
scrolldisplaywidget.cpp
#include "scrolldisplaywidget.h" #include <QDebug>ScrollDisplayWidget::ScrollDisplayWidget(QWidget *parent) : QFrame(parent) {initWindow(); }QWidget *ScrollDisplayWidget::getScrollCenterWidget() {return m_scrollWidget; }void ScrollDisplayWidget::initWindow() {m_scrollArea = new QScrollArea(this);m_scrollArea->setGeometry(0,0,790,900);m_scrollArea->setWidgetResizable(false);m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);//Qt::ScrollBarAlwaysOnm_scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);m_scrollWidget = new QWidget();//(m_scrollArea);m_scrollWidget->setGeometry(0,0,790,1500);m_scrollWidget->setMinimumSize(790,1500);m_scrollArea->setWidget(m_scrollWidget);//窗口變大的時候滾動區域的大小也可以跟隨調整m_layout = new QHBoxLayout;m_layout->addWidget(m_scrollArea); // m_layout->addWidget(m_scrollWidget);m_layout->setContentsMargins(0,0,0,0);m_layout->setSpacing(0);this->setLayout(m_layout); }上述創建滾動區域后設置了滾動區域的位置大小,也設置了滾動區域的滾動條的屬性,然后創建滾動區域的滾動窗口,設置其位置大小和最小大小,并設置該窗口為滾動區域的窗口,最后創建水平布局,將滾動區域加入到水平布局中,設置了水平布局的相關屬性。
下面將上面的類提升為QWidget的子控件。
如上面所示,直接提升QFrame為自定義的類ScrollDisplayWidget。在提升后的frame控件上添加子控件,當子控件的數量超過frame的長度時就會自動出現滾動條。
總結
以上是生活随笔為你收集整理的qt通过代码创建滚动区域,添加滚动区域到窗口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux上怎么解压zip文件和tar.
- 下一篇: qt设置渐变色