标签: qscrollarea

QScrollArea清除背景颜色

在我的 qss 样式表中我定义了背景颜色

#sw_MainMiddle {
    background: black;
}
Run Code Online (Sandbox Code Playgroud)

QScrollArea一切都很好,但是当我在小部件中放置滚动条时sw_MainMiddle,背景颜色消失了。显然没有机会直接为 指定背景QScrollArea。下面的代码没有任何效果:

QScrollArea {
    background: black;
}
Run Code Online (Sandbox Code Playgroud)

根据这个问题,我使用对象名称选择器将背景颜色重新分配给滚动区域,也没有效果:

#myScrollArea {
    background: black;
}
Run Code Online (Sandbox Code Playgroud)

我做错了什么吗?

qt qscrollarea qt5.3

3
推荐指数
1
解决办法
3505
查看次数

所需空间最小的 QLayout

我有一个 QVBoxLayout,其中我在运行时动态添加其他 QWidget :

for(int i = 0; i < value; i++)
{
    QList<QWidget*> widgetList_i;
    //... widgetList_i.append(a lot of widgets)
    ui->verticalLayout->addWidget(widget_i);
}
Run Code Online (Sandbox Code Playgroud)

这些添加的小部件之间有很多浪费的空间:

动态 QWidegt 之间的空间被浪费

当我运行应用程序时,我可以用鼠标压缩高度。

用鼠标拖动边框压缩空间

使用限制每个widgetList_i小部件的高度setMaximumheigth()是一个很好的方法,但是我在开头和结尾浪费了空间:

最大高度

仅添加 aui->vertivalLayout->addStretch(1);会导致末尾出现空白。该布局的开头很好:

在此输入图像描述

添加 QSpacerItem 会使情况变得更糟:

空间项目

是否有一个函数可以将添加的小部件的布局高度设置为最小值?

qscrollarea qt5 qlayout qvboxlayout

3
推荐指数
1
解决办法
2303
查看次数

pyqt在滚动区域扩展网格

我在对话框的滚动区域中有一个网格区域

class IndicSelectWindow(QDialog):
    def __init__(self, path, parent=None):
        super(IndicSelectWindow, self).__init__(parent)
        self.resize(500, 400)
        self.scroll_area = QScrollArea(self)
        self.scroll_area.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.grid_layout = QGridLayout(self.scroll_area)
        self.exec_()
Run Code Online (Sandbox Code Playgroud)

如何使网格覆盖 scroll_area 的整个区域。它没有方法 setSizePolicy。我怎样才能使这项工作?

python pyqt pyqt4 qscrollarea pyqt5

3
推荐指数
1
解决办法
3004
查看次数

如何将 QScrollArea 用于一个或多个 QGroupBox?

我一直在尝试将一个/多个 QGroupBox 插入一个 QScrollArea。

问题是:滚动条不显示。

这是我的代码:

# -*- coding: utf-8 -*-

from PyQt5.QtWidgets import QWidget
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QCheckBox
from PyQt5.QtWidgets import QGroupBox
from PyQt5.QtWidgets import QScrollArea

from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QGridLayout

import sys

lst = [u"D", u"E", u"EF", u"F", u"FG", u"G", u"H", u"JS", u"J", u"K", u"M", u"P", u"R", u"S", u"T", u"U", u"V", u"X", u"Y", u"Z"]

class MyApp(QWidget):
    def __init__(self):
        super(MyApp, self).__init__()

        window_width = 1200
        window_height = 600
        self.setFixedSize(window_width, window_height)

        self.initUI() …
Run Code Online (Sandbox Code Playgroud)

python pyqt qscrollarea pyqt5

3
推荐指数
1
解决办法
7960
查看次数

pyqt5选项卡区域没有填满整个可用空间

我正在尝试使用 GUI - 我想要滚动条和选项卡。我将滚动条修改为“最外面”的小部件,里面有一个 QTabWidget,反之亦然:QTabWidget 有一个 QWidget 选项卡,而 QScrollArea 的父级是选项卡。简而言之,我无法让滚动区域扩展以填充可用空间。下面有一些评论说明了我尝试过的一切。没有调整 sizePolicies 似乎有帮助。我看过其他人发布的类似问题,特别是pyqt 中的滚动区域问题?

# -*- coding: utf-8 -*-
"""
Created on Fri Nov 17 07:07:08 2017

@author: Erik
"""

import sys
from PyQt5.QtWidgets import QLayout, QVBoxLayout ,QTabWidget, QMainWindow,QApplication, QWidget, QSizePolicy, QScrollArea
from PyQt5.QtGui import QColor, QPalette
from PyQt5.QtCore import QSize
class Color2(QWidget):

    def __init__(self, color, *args, **kwargs):
        super(Color2, self).__init__(*args, **kwargs)
        self.setAutoFillBackground(True)
        palette = self.palette()
        palette.setColor(QPalette.Window, QColor(color))
        self.setPalette(palette)
        self.setSizePolicy(QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum))

    def sizeHint(self):
        return QSize(250,150)

class MyTableWidget(QWidget):
    def __init__(self, parent):   
        super(QWidget, …
Run Code Online (Sandbox Code Playgroud)

python pyqt python-3.x qscrollarea pyqt5

3
推荐指数
1
解决办法
893
查看次数

使用 PyQt 和 matplotlib 在可滚动小部件中显示多个图

由于我没有得到这个问题的答案,我尝试用 PyQt 解决它。显然,这并不容易,当涉及 QScrollArea 时......

我写了一个小测试,基本上可以满足我的要求,但它没有像我预期的那样显示滚动区域和其中的图:

from PyQt4 import QtCore, QtGui
import os,sys

#import matplotlib
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
from matplotlib.figure import Figure

qapp = QtGui.QApplication(sys.argv)
qwidget = QtGui.QWidget()
qwidget.setGeometry(QtCore.QRect(0, 0, 500, 500))
qlayout = QtGui.QHBoxLayout(qwidget)
qwidget.setLayout(qlayout)

qscroll = QtGui.QScrollArea(qwidget)
qscroll.setGeometry(QtCore.QRect(0, 0, 500, 500))
qscroll.setFrameStyle(QtGui.QFrame.NoFrame)
qlayout.addWidget(qscroll)

qscrollContents = QtGui.QWidget()
qscrollLayout = QtGui.QVBoxLayout(qscrollContents)
qscrollLayout.setGeometry(QtCore.QRect(0, 0, 1000, 1000))

qscroll.setWidget(qscrollContents)
qscroll.setWidgetResizable(True)

for i in xrange(5):
  qfigWidget = QtGui.QWidget(qscrollContents)
  fig = Figure((5.0, 4.0), dpi=100) …
Run Code Online (Sandbox Code Playgroud)

python qt pyqt matplotlib qscrollarea

2
推荐指数
1
解决办法
5458
查看次数

Qt QScrollArea 滚动速度

有没有办法降低 QScrollArea 上的滚动速度?当我通过鼠标滚轮滚动时,它会跳过内容。所以是的,有没有办法调整它?

performance qt scroll qscrollarea

2
推荐指数
1
解决办法
1839
查看次数

QScroller 和 QScrollBar 之间的 qt 冲突

我发现 QScroller 和 QScrollBar 之间存在冲突。所以我有一个带有垂直滚动条的 QScrollArea。我还激活了一个 QScroller,它允许我使用左键单击按钮进行动态滚动。但我不能再抓住滚动条句柄了。因为一旦我抓住它,QScroller 开始接管。这是我添加 QScroller 的方式:

QScroller::grabGesture(mArea, QScroller::LeftMouseButtonGesture) ; 
Run Code Online (Sandbox Code Playgroud)

知道如何解决冲突吗?

c++ qt scrollbar qscrollarea

2
推荐指数
1
解决办法
894
查看次数

将滚动条添加到选项卡 PYQT5

我想在选项卡中创建一个滚动条(pyqt5),根据下面链接中的示例,我做了一些更改以满足我的需要,但滚动条没有显示在选项卡上,我的图表变得更小。

示例 PyQt4 - 如何将滚动条添加到固定大小的选项卡式窗口中?

导入文件 https://filebin.net/u3m7m3x2k74wlm6l

import sys
import os
import pandas as pd
from PyQt5.QtWidgets import ( QApplication, QWidget,QHBoxLayout,QVBoxLayout,QPushButton,QTabWidget,QMainWindow,QGridLayout,QSizePolicy\
                            ,QScrollArea,QGroupBox)
from PyQt5.QtGui import *
from PyQt5.QtCore import *
#import html 
import plotly.offline as po
import plotly.express as px
import plotly.graph_objs as go
from PyQt5.QtWebEngineWidgets import *

class Win(QMainWindow):
    def __init__(self):
        super().__init__()    
        self.setGeometry(100,100, 1280,900)
        self.GuiApp=App()
        self.setCentralWidget(self.GuiApp)
        self.show()

class Tab1(QWidget):
    def __init__(self, parent=None):
        super(Tab1, self).__init__(parent)

        df = pd.read_csv(r'C:/Users/User/Desktop/Python-setup test/Plot122.csv')# need to download the file from https://filebin.net/u3m7m3x2k74wlm6l 
        data1 = px.line(df,x = …
Run Code Online (Sandbox Code Playgroud)

python tabs qscrollarea qtabwidget pyqt5

2
推荐指数
1
解决办法
3662
查看次数

如何使用QScrollArea让滚动条出现

我正在尝试使用 pyqt5 创建一个具有垂直布局的滚动区域,并且我放入了一些标签。我知道即使它是垂直布局,如果文本不适合,它也应该水平滚动。但无论我尝试什么,它都不让我滚动。

这是我正在使用的代码:

class window(QMainWindow):
    def __init__(self):
        super(window, self).__init__()
        self.setGeometry(300, 300, 803, 520)
        self.init_ui()

    def init_ui(self):
        self.teacher_box = QScrollArea(self)
        self.teacher_box.setGeometry(360, 10, 420, 181)
        self.teacher_box.setWidgetResizable(True)
        self.teacher_box.setObjectName("teacher_box")
        self.teacher_box_widget = QWidget()
        self.teacher_box_widget.setGeometry(QtCore.QRect(0, 0, 420, 181))
        self.teacher_box_widget.setObjectName("teacher_box_widget")
        self.verticalLayout = QVBoxLayout(self.teacher_box_widget)
        self.verticalLayout.setObjectName("verticalLayout")
        self.teacher_box.setWidget(self.teacher_box_widget) 
        self.teacher_label = QtWidgets.QLabel(self.teacher_box_widget)
        self.teacher_label.setText("This is a new text label that i created using pyqt5's qscrollarea and now the label is going to get outside the boundaries")
        self.teacher_label.adjustSize()
        self.teacher_label.move(10, 10)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = window()
    win.show()
    sys.exit(app.exec_()) …
Run Code Online (Sandbox Code Playgroud)

python qscrollarea pyqt5

2
推荐指数
1
解决办法
1978
查看次数