- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我认为这是同一个问题:QScrollArea resizing QWidget
但是没有解决办法。所以让我揭露这个问题。
我认为问题来自单一来源::大小提示和布局 (http://qt-project.org/doc/qt-5.1/qtwidgets/qscrollarea.html#details)
第二个问题(缩小的widget)可以通过设置“c->setSizeConstraint(QLayout::SetMinimumSize);”来解决
我目前正在寻找缺少滚动条的解决方案
这是显示我的问题的代码:
<c++>
#include <QWidget>
#include <QScrollArea>
#include <QVBoxLayout>
#include <QSpinBox>
class test2 : public QWidget
{
Q_OBJECT
public:
test2(QWidget *parent = 0) :QWidget(parent)
{
b = new QScrollArea(this);
c = new QVBoxLayout;
for (int i = 0; i < 10; i++)
{
a.push_back(new QSpinBox());
c->addWidget(a[i]);
}
c->setSizeConstraint(QLayout::SetMinimumSize);
b->setLayout(c);
b->resize(200, 200);
}
~test2()
{
for (int i = 0; i < 10; i++)
delete a[i];
}
protected:
QVector<QSpinBox*> a;
QScrollArea* b;
QVBoxLayout* c;
};
int main(int argc, char *argv[])
{
///*
QApplication app(argc, argv);
test2 a;
a.show();
return app.exec();//*/
}
编辑::在这里找到了一个解决方案: http://qt-project.org/forums/viewthread/295
如果你不想在这里阅读大量无用的代码他做了什么::他扭曲了小部件内的布局
解决方案::从ScrollBar <- Widget <- Layout继承对象
代替小部件 <- ScrollBar <- Layout
但这不是真正的解决方案...我将尝试我给出的示例。
它有效。有没有人有更好的解决方案??
最佳答案
您不想在滚动区域本身上设置布局。您引用的答案源于对此的误解。
您需要在滚动区域内有一个小部件,然后使用 QScrollArea::setWidget
将该小部件传递到该区域。如果滚动区域内只有一个没有子项的小部件,那么您不需要额外的布局。
您无需手动跟踪布局所拥有的小部件。一旦删除具有布局的小部件,它们将自动删除。
QScrollArea
小部件未布置在其封闭小部件内。
下面是一个如何操作的工作示例:
// https://github.com/KubaO/stackoverflown/tree/master/questions/scroll-18703286
#include <QScrollArea>
#include <QVBoxLayout>
#include <QSpinBox>
#include <QApplication>
class Window : public QWidget
{
QVBoxLayout m_layout{this};
QScrollArea m_area;
QWidget m_contents;
QVBoxLayout m_contentsLayout{&m_contents};
QSpinBox m_spinBoxes[10];
public:
Window(QWidget *parent = {}) : QWidget(parent) {
m_layout.addWidget(&m_area);
m_area.setWidget(&m_contents);
for (auto & spinbox : m_spinBoxes)
m_contentsLayout.addWidget(&spinbox);
m_contentsLayout.setSizeConstraint(QLayout::SetMinimumSize);
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Window w;
w.show();
return app.exec();
}
关于c++ - QScrollArea 缺少滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18703286/
在获得有关 the previous one 的帮助后,我遇到了 QScrollArea 的另一个问题, 这有点相似。 现在的问题是,如果您创建一个滚动区域和一个标签,将标签设置为滚动区域的小部件,然
我有一个QScrollArea。我想让上下文可以用鼠标平移 - 这样,手形光标会显示在该区域上方,然后单击并按住让我们进入拖动模式。 这类似于 QGraphicsView 使用 QGraphicsVi
我正在使用诺基亚 Qt SDK 并在顶部区域设计了一个小横幅轮播。它看起来像这样: 层次结构如下所示: 在模拟器中安装它后,我尝试使其可滚动( throw )。我猜这是一个简单的任务(如 Androi
我有一个带有 QScrollArea 的小部件,我希望它在包含它的小部件显示后立即向下滚动。我尝试过: scrollArea->ensureVisible(0,100, 20, 20); 它仅在用户调
我遇到了 QScrollArea 的问题。 特别是我找不到正确的 QSS 规则来删除 QSrollArea QFrame 和 QScroll 之间的 3px 空间。 我要删除的空间是图中红色箭头所指的
我正在寻找一种方法来解决放大时某些小部件消失的问题。 我的程序的结构是: Window 与 QscrollArea 作为 child 。 QscrollArea 有一个从 QWidget 作为子项继承
我昨晚花了很多时间试图让这个 QScrollArea 工作,但没有运气。我想做的是在菜单下方添加顶部水平菜单布局和可滚动垂直内容布局。滚动条不可见,一旦我向其中添加新元素(通过单击菜单按钮之一),内容
我试图在 QT 中获取自定义滚动小部件,但在滚动时出现重绘错误。 Alt-tab 或其他重绘事件正确重绘。 我以 http://doc.qt.io/qt-5/qtwidgets-widgets-cha
我有一个很好的小部件,基本上看起来像一个带有一堆 QSlider 的对话框。 slider 的数量取决于调用对话框(不是实际的 QDialog;只是 QWidget)时的情况。 由于不同数量的 sli
我正在尝试使用 QScrollArea 以便能够将大量小部件放在同一个窗口中。不幸的是,包含 QScrollAea(居中)的 QWidget 没有缩放到窗口的大小,这使得它......不像我想要的..
我目前有一个 QScrollArea 定义为: self.results_grid_scrollarea = QScrollArea() self.results_grid_widget = QWid
我有一个QScrollArea,我将向其中添加一些其他小部件。我想要的是,当其中的小部件扩展其大小时,QScrollArea 开始滚动。 但是滚动区域开始自行扩展。 这是我使用的代码: import
我正在尝试在框布局中显示带有滚动条的图像标签。但是,滚动区域出现在错误的位置且大小错误。你能告诉我我做错了什么吗? import sys from PyQt5 import QtCore from P
我认为这是同一个问题:QScrollArea resizing QWidget 但是没有解决办法。所以让我揭露这个问题。 测试2继承自QWidget: 作曲: QSpinBox 的 vector QS
QScrollArea 有办法知道它滚动了多少吗?我是否需要对所有 scollContensBy() 调用进行统计? 我需要获取鼠标相对于 QScrollArea 内图像标签的位置。我只能获取相对于当
我在 QScrollArea 中放置自定义小部件时遇到了一些问题。我的自定义小部件在 QGridLayout 中包含 4 个标签来填充它。现在我想将此小部件保留在 QScrollArea 中并能够向其
在 PyQtGraph 中,您可以使用滚轮放大绘图。但是,当将 PyQtGraph 嵌入到 QScrollArea 中时,滚动会放大悬停的绘图并滚动 QScrollArea。 最少的可重现代码: fr
我正在研究配置 QDialog。它有几个类别(General、Appearance 等),当用户点击它们时会加载它们。每个类别都有自己的页面。这些页面本身就是独立的类(每个都有自己的 ui、cpp 和
就像 QPushButton提供默认 clicked()信号,我预计 QScrollArea有一个sliderChanged()或类似的信号。有趣的是,QScrollBar确实有这样的信号。 我想做的
我正在尝试使用 QVBoxLayout 中的多个 Groupbox 对象创建一个动态 GUI。由于它们很多,我将需要一个滚动区域来使最终用户可以使用它们。 所以我尝试将这个选项卡的顶部小部件从 QWi
我是一名优秀的程序员,十分优秀!