【python/pyside2】向QVBoxLayout添加滚动条
import sys
from PySide2.QtWidgets import *
from PySide2.QtGui import QFont
from PySide2 import QtCore font = QFont()
font.setPointSize(20) class NewButton(QPushButton):
def __init__(self, *args):
super().__init__(*args)
self.setFont(font) class Form(QDialog):
def __init__(self, parent=None):
super(Form, self).__init__(parent) self.v1 = QVBoxLayout()
self.v2 = QVBoxLayout() self.v2.b1 = NewButton("按钮1")
self.v2.b2 = NewButton("按钮2")
self.v2.b1.clicked.connect(self.additem)
self.v2.addWidget(self.v2.b1)
self.v2.addWidget(self.v2.b2)
self.additem()
w = QWidget()
w.setLayout(self.v1)
area = QScrollArea()
area.setWidget(w)
# area.setLayout(self.v1)
area.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
# area.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
area.setWidgetResizable(True) layout = QHBoxLayout()
layout.addWidget(area)
# layout.addLayout(self.v1)
layout.addLayout(self.v2) self.setLayout(layout) def additem(self):
self.v1.addWidget(NewButton("新的按钮")) if __name__ == '__main__':
app = QApplication(sys.argv)
form = Form()
form.show()
sys.exit(app.exec_())
思路说明
QScrollArea 只要简单设置就能有滚动条 QScrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
PS,水平方向有相似的方法,后面的参数不能是bool值,只能是QtCore.Qt.ScrollBarAlwaysOn或者QtCore.Qt.ScrollBarAlwaysOff
但是QScrollArea 不能和Layout一样addWidget或addLayout。QScrollArea实质还是Widget,只能setWidget或setLayout “挂载”上一个其他东西。
但实际测试发现,还有一个十分重要的设置QScrollArea.setWidgetResizable(True)必须有,所以代码是一个QScrollArea先setWidget一个Widget然后Widget再setLayout上QVBoxLayout
我的视频里面有实际的效果演示
https://www.bilibili.com/video/BV13u411v7hp
【python/pyside2】向QVBoxLayout添加滚动条的更多相关文章
- java中向JTextArea中添加滚动条(垂直的和水平的)
这次在研究java的swing类时,在做一个实例时,发现了JTextArea中添加滚动条的问题,经过网上查找资料和自己测试发现有以下用法: 1.首先应该把JTextArea添加到一个JScrollPa ...
- C# 给picturebox添加滚动条
在一个项目中需要给picturebox增加滚动条,我先前的做法和网上一样,将picturebox放在一个panel上,将panel的AutoScroll设置为ture,将picturebox的Size ...
- java swing:文本框添加滚动条
有几点要注意: 1.默认的滚动条,仅在输入的文本超过文本框时才会显示..没有超过文本框是不会显示的: 2.设置矩形大小,是在滚动条上设置,而不是在文本框上设置: 示例代码如下: public clas ...
- div添加滚动条常见属性
由于页面上的表里的末一列的内容太多,显示的内容不美观了,就想在这一列上加滚动条,在网上搜了一下,用div可以实现,感觉还不错,下面的是在网上查到的. 想在div里添加滚动条设置一下style就ok了 ...
- python类可以任意添加属性
python类可以任意添加属性 class A(object): def __init__(self): self.name = "zhangsan" self.age = 18 ...
- DataGrid添加滚动条
DataGrid中是没有滚动条的,要添加滚动条需要借助<div>层 <div style="overflow:auto;width:95%;height:95%" ...
- Python 日志输出中添加上下文信息
Python日志输出中添加上下文信息 除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定信息,如: ...
- VC对话框实现添加滚动条实现滚动效果
对话框滚动条及滚动效果实现,用的api主要有: ScrollWindow, SetScrollInfo, GetScrollInfo, SetWindowOrgEx.涉及的数据结构为SCROLLINF ...
- HTML如何给table添加滚动条
HTML如何给table添加滚动条 要给table添加滚动条其实很简单,主要是给table放到一个div里去,然后再设置div显示滚动条即可.示例代码如下所示: <!--div比table大小要 ...
- android textview添加滚动条
给textview添加滚动条 方式一: xml代码: //设置滚动条的方向 android:scrollbars="vertical" java中设置 tView=(TextVie ...
随机推荐
- python学习第五周总结
面向对象前戏之人狗大战 # 编写代码简单的实现人打狗 狗咬人的小游戏(剧情需要) """推导步骤1:代码定义出人和狗""" person1 ...
- Grafana 系列文章(十五):Exemplars
Exemplars 简介 Exemplar 是用一个特定的 trace,代表在给定时间间隔内的度量.Metrics 擅长给你一个系统的综合视图,而 traces 给你一个单一请求的细粒度视图:Exem ...
- 解决centos7 yum和wget都不能使用
1.前言 因为卸载了centos 7.9.2009 内置自带的python2.7.5,导致yum无法使用,但是又没有安装wget,两者不能相互安装导致死循环 2.安装wget 找到自己对应的系统版本, ...
- 运行第一个Go文件
Go学习(1)一. 使用GoLand运行第一个Go文件 目录 Go学习(1)一. 使用GoLand运行第一个Go文件 前言 一.创建项目 二.编辑运行/调试配置 三.编写并运行代码 总结 前言 Go语 ...
- 【KAWAKO】docker暴力上手
目录 从docker hub拉取镜像 根据镜像创建容器,同时把本地目录挂载到容器 进入容器 停止容器 删除停止的容器 从docker hub拉取镜像 进入docker hub,搜索自己喜欢的镜像. 复 ...
- LG P4146 序列终结者
\(\text{Problem}\) 支持区间加区间翻转区间最大值 \(\text{Solution}\) \(\text{FHQ-Treap}\) 两个标记加与翻转 然后维护区间最大值 \(\tex ...
- JZOJ 1166. 树中点对距离
题面 思路 本蒟蒻第一次学点分治,正遇模板题,留个模板代码 \(Code\) #include<cstdio> #include<algorithm> using namesp ...
- 题解 [ZJOI2010]排列计数
好题. % 你赛考到了不会摆烂,后来发现原来有向下取整,题面没有...( 就算有我也做不出来啦 qAq 首先我们会发现这个长得就是小根堆,答案就变成了小根堆的计数. 首先最小的数字肯定放在根的位置.我 ...
- Os-hackNos
Os-hackNos 目录 Os-hackNos 1 环境配置 1.1 靶场环境 1.2 靶机未获取到IP时配置 2 信息收集 2.1 端口扫描 2.2 目录扫描 3 对Drupal 7.57版本安全 ...
- Cesium渲染调度
1. 引言 Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业 ...