在Qt中有一个很好的类 QScrollArea。 如下图所示,左边是界面被压缩限制时,显示的情况。右边是完全展示出的界面情况。 ? Step1.拖入QScrollArea 在Widget box中找到QScrollArea控件,拖入窗体。 ?
滚动区 QScrollArea滚动区组件用来显示子控件的内容的框架,如果子控件的尺寸超过了框架的大小,可以使用滚动条,方便查看整个子控件。 QScrollArea 可以给任何QWidget添加滚动条,但一般自定义窗体添加滚动条不显示。 ::QScrollArea(QWidget *parent = 0) 构造一个父对象为parent的ScrollArea void QScrollArea::setWidget(QWidget *widget) 设置控件widget为QScrollArea组件的子控件 QWidget *SCrollArea::takeWidget() 删除QScrollArea的子控件 QWidget *QScrollArea::widget()const 返回QScrollArea的子控件 (3)示例 #include "mainwindow.h" #include <QApplication
We can show a image with automatic scroll bars with the use of QScrollArea. This is a simple application with QScrollArea. #include <QtGui/QApplication> #include <QLabel> #include <QScrollArea> #include "qmlapplicationviewer.h Like this: #ifndef PICWINDOW_H #define PICWINDOW_H #include <QScrollArea> class QLabel; class QImage ; class PicWindow : public QScrollArea { Q_OBJECT public: explicit PicWindow(QWidget *parent
有一个需求是 QScrollArea中的组件需要动态添加或删除,比如懒加载的图片列表。 但是在实现的过程中只有第一次请求能够成功添加组件,当对 QScrollArea中的组件进行更新时 QScrollArea中的组件就会消失。 上面这段话的大概意思是:在调用 QScrollArea.setWidget之前必须设置 widget的 layout,在调用了 QScrollArea.setWidget之后再设置 widget的 layout 虽然这里在调用 QScrollArea.setWidget之前就设置了 widget的 layout,但是我推测可能调用了 QScrollArea.setWidget之后更新 widget也会导致组件隐藏 基于上面的分析,既然不能更新 widget,那我们就在每次需要更新 widget时重新创建一个 QWidget,再调用 QScrollArea.setWidget函数设置新的 widget。
滚动条的使用方法 首先,我们需要声明QScrollArea 然后,我们需要设置QScrollArea的位置大小 最后,我们将需要产生滚动条的元素放入它的内部。 q = QWidget() qscrollarea = QtWidgets.QScrollArea(q) qscrollarea.setGeometry(QRect(50,100,600,500 )) qscrollarea.setWidgetResizable(True) listWidget = QtWidgets.QListWidget() qscrollarea.setWidget(listWidget = QtWidgets.QScrollArea(self) self.qscrollarea.setGeometry(QRect(50,100,600,500)) self.qscrollarea.setWidgetResizable (True) self.qscrollarea.setWidget(self.listWidget) self.setWindowTitle("Flow Layout Scroll
使用QScrollArea实现图片过大时的滚动视图。 拖拽图片到窗口重写dragEnterEvent和dropEvent接口实现。 代码 #include <QScrollArea> #include <QLabel> #include <QDragEnterEvent> #include <QDropEvent> #include m_label = new QLabel(QStringLiteral("图片文件拖拽到此处")); /* 创建一个滚动视图 */ QScrollArea *scrollArea = new QScrollArea(); scrollArea->setWidget(m_label); QVBoxLayout *vLayout
,QScrollArea 支持滚轮操作。 也就是说,如果我们缩放 PDF 页面大小超过 QScrollArea 的大小,那么就会自动出现滚轮,以便我们浏览页面。 其中,MyArea 类是对 QScrollArea 的重载,绑定了快捷键以支持翻页以及缩放等操作。 ) MyArea 继承了 QScrollArea 类,所以支持自适应滚轮操作。 class MyArea(QScrollArea): def init(self, widget): self.widget = widget self.init_action
import QFontfrom PySide6.QtWidgets import QApplication, QHBoxLayout, QLayout, QMainWindow, QPushButton, QScrollArea self.setCentralWidget(self.init_scroll_area(v_main_layout)) def init_scroll_area(self, layout: QLayout) -> QScrollArea colors_container = QWidget() colors_container.setLayout(layout) colors_scroll_area = QScrollArea
QFontDatabase from PySide6.QtWidgets import QApplication, QHBoxLayout, QLabel, QLayout, QMainWindow, QScrollArea fonts_v_layout) self.setCentralWidget(fonts_area) def init_scroll_area(self, layout: QLayout) -> QScrollArea colors_container = QWidget() colors_container.setLayout(layout) colors_scroll_area = QScrollArea
"
The Image Viewer example shows how to combine " "QLabel and QScrollArea QScrollArea provides a scrolling view around " "another widget. If the child widget exceeds the size of the " "frame, QScrollArea automatically provides demonstrates how QLabel's ability to scale " "its contents (QLabel.scaledContents), and QScrollArea's " "ability to automatically resize its contents " "(QScrollArea.widgetResizable
添加自定义窗体 继续学习博客Qt浅谈之三十五仿QQ设置面板功能,博主的界面长这样, 原文是这样设计的:上面的导航切换选项卡使用QTabWidget,左侧导航使用QListWidget,右侧的显示区域使用QScrollArea 控件;主要使用垂直滚动条的valueChanged事件和QListWidget的itemClicked事件;通过调用QWidget的visibleRegion().isEmpty() 判断QScrollArea 中滑动过的区域,通过垂直滚动条的setSliderPosition方法设置QScrollArea的新的区域。 在功能区,我这里称之为面板容器,原文博主选择用QScrollArea作为容器,我这里打算采用QListWidget来实现这个容器, (录屏软件超级录屏,然后用迅雷看看转换成gif格式) 先看一下自定义窗口设置
示例源码: #include <QLabel> #include <QScrollArea> #include <QSerialPortInfo> #include <QVBoxLayout> #include layout->addWidget(label); } auto workPage = new QWidget; workPage->setLayout(layout); QScrollArea
QScrollArea滚动区域控件类,提供了关于另一个窗口的滚动的视图,一个滚动区域通常用来显示一个子窗口。 setWidget(): 设置控件为QScrollArea的子控件; takeWidget():删除QScrollArea的子控件; widget(): 返回QScrollArea的子控件; setWidgetResizable QtWidgets import (QApplication, QWidget, QSplitter, QVBoxLayout, QGroupBox, QScrollArea mainLayout = QVBoxLayout(self) hSplitter = QSplitter(Qt.Horizontal) saLeft = QScrollArea saLeft.setBackgroundRole(QPalette.Dark) saLeft.setWidget(disp_img) saRight = QScrollArea
可设置信息边框边距 * 4:可设置信息所占高度 * 5:可设置基准颜色/线条颜色 * 6:可设置标题/信息集合 * 7:自动产生滚动条 * 8:支持字符串形式设置数据 */ #include <QScrollArea #include <QtUiPlugin/QDesignerExportWidget> #endif class QDESIGNER_WIDGET_EXPORT TimeAxis : public QScrollArea #else class TimeAxis : public QScrollArea #endif { Q_OBJECT Q_PROPERTY(int itemMargin READ
这里我是用QToolButton和QWidget+QScrollArea实现的。这个可以在实例化时指定菜单按键数。 "; }); baseConfig->initMenu(listItem); //这里为什么要使用QScrollArea,这样菜单界面内容超出一页内容时,可以像网页一页向下滚动
支持自动拉伸自动填充 * 3:提供接口获取容器内的所有对象的指针 * 4:可设置是否自动拉伸宽度高度 * 5:可设置设备面板之间的间距和边距 */ #include <QWidget> class QScrollArea explicit PanelWidget(QWidget *parent = 0); protected: void resizeEvent(QResizeEvent *); private: QScrollArea
def setupUi(self, Form): Form.setObjectName("Form") Form.resize(800, 600) # 创建QScrollArea 容器 self.scrollArea = QtWidgets.QScrollArea(Form) self.scrollArea.setGeometry(QtCore.QRect
QScrollArea ListView在pyqt中有个对应的控件是QScrollArea,找到了一个使用例程: 参考自:https://blog.csdn.net/Yibaomeimei/article i][3]))) label.move(10, 30 * i) self.vbox = QVBoxLayout() self.scroll = QScrollArea self.parent = parent self.width = 960 self.height = 500 self.scroll_ares_images = QScrollArea
PicViewWidget::PicViewWidget(QMainWindow *parent) : QMainWindow(parent) { m_box = new ImageBox(); QScrollArea *m_scrollArea = new QScrollArea(); m_scrollArea->setMinimumSize(800, 600); m_scrollArea->setWidgetResizable
QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.scrollArea = QtWidgets.QScrollArea Qt.AlignCenter) self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.scrollArea_2 = QtWidgets.QScrollArea self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_1) self.scrollArea_3 = QtWidgets.QScrollArea self.scrollArea_3.setWidget(self.scrollAreaWidgetContents_3) self.scrollArea_4 = QtWidgets.QScrollArea