日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

qt通过代码创建滚动区域,添加滚动区域到窗口

發布時間:2024/9/27 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt通过代码创建滚动区域,添加滚动区域到窗口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

繼承于QWidget創建的項目,要想在QWidget中添加很多子控件,考慮到若是子控件的數目不確定,太多的時候就需要添加滾動條來實現滾動查看,于是可以自定義一個類,在該類中實現滾動區域和滾動窗口的創建,然后將該自定義的類提升為QWidget。

實現

下面是自定義的滾動區域類
scrolldisplaywidget.h

#ifndef SCROLLDISPLAYWIDGET_H #define SCROLLDISPLAYWIDGET_H#include <QFrame> #include <QHBoxLayout> #include <QScrollArea> #include <QScrollBar>class ScrollDisplayWidget : public QFrame {Q_OBJECT public:explicit ScrollDisplayWidget(QWidget *parent = nullptr);QWidget *getScrollCenterWidget();//獲取滾動區域的中心窗口 protected:void initWindow();//初始化窗口 signals:public slots:private:QScrollArea *m_scrollArea;//滾動區域QWidget *m_scrollWidget;//滾動區域的窗口QHBoxLayout *m_layout;//水平布局滾動區域 };#endif // 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通过代码创建滚动区域,添加滚动区域到窗口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。