代码先锋网 代码片段及技术文章聚合

QScrollArea QWidget and QVBoxLayout

技术标签: qt

you messed up the stack of items. The idea of having scrollable area is like this:

  • on the bottom is parent widget (for example QDialog)
  • on top of this is scrollable area (QScrollArea) of fixed size
  • on top of this is a widget (QWidget) of some size, where usually only part of it is visible (it's supposed to be bigger than scrollarea)
  • on top of this is a layout
  • and the last: layout manages child items (couple of QPushButton here)

代码如***意,没有布局,没法正确显示。

int
main( int _argc, char** _argv )
{
    QApplication app( _argc, _argv );

    QDialog * dlg = new QDialog();
    dlg->setGeometry( 100, 100, 260, 260);

    QScrollArea *scrollArea = new QScrollArea( dlg );
    scrollArea->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOn );
    scrollArea->setWidgetResizable( true );
    scrollArea->setGeometry( 10, 10, 200, 200 );

    QWidget *widget = new QWidget();
    scrollArea->setWidget( widget );

    QVBoxLayout *layout = new QVBoxLayout();
    widget->setLayout( layout );

    for (int i = 0; i < 10; i++)
    {
        QPushButton *button = new QPushButton( QString( "%1" ).arg( i ) );
        layout->addWidget( button );
    }

    dlg->show();

    return app.exec();
}

 

版权声明:本文为gaoenyang760525原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gaoenyang760525/article/details/116377451

智能推荐

QScrollArea的使用问题

简述 在播放酷狗音乐播放器中,在使用QScrollArea过程中,由于酷狗列表是经常可变的。我们需要适应的改变大小,比如窗口的扩大等,但由于QScrollArea自身就是用于查看很大范围的目标,所以当QScrollArea的大小发生变化时,里面的widget是不回发生变化的。 解决方案...

QScrollArea的使用

简述 QScrollArea提供了一个滚动视图到另一个部件。 滚动区域用于显示一个画面中的子部件的内容。如果部件超过画面的大小,视图可以提供滚动条,这样就都可以看到部件的整个区域。 基本使用 QScrollArear容器里面的子部件必须使用setWidget()指定 可以使用widget()函数来获取部件,视图可以使用setWidgetResizable()函数来调整大小。 有两个便利的函数:en...

QScrollArea的基本使用

使用框架生成一个Qt Widgets Application,基类选择QWidget,取消生成ui文件 然后在widget.cpp文件中下下如下代码: 编译执行看看效果。...

QScrollArea 用法总结

参考:http://blog.csdn.net/liang19890820/article/details/52402002 基本用法 设置大小 获取与移除部件 获取 移除...

滚动视图QScrollArea

1.代码片段 2.注意细节 这个滚动视图虽然看起来简单,但是在创建时,如果稍不注意,就会进入各种坑,现在总结一下 1.QScrollArea 在创建时,可设置其父控件,滚动区域尺寸一定不能比其父控件还大,否则可能无法看到水平或者垂直滚动条 2. s->setWidget(mWid),滚动区域窗体需要比滚动窗体大,才能看到水平或垂直滚动条...

猜你喜欢

QScrollArea 窗体透明设置

参考博客 使QScrollArea的背景透明,并且不影响子控件 核心代码...

QScrollArea使用注意点

1、QScrollArea、viewport、widget QScrollArea和viewport的大小基本等同,viewport会减去QScrollArea的margin吧 有时候继承QScrollArea,重写基类方法后你会发现,控件显示不全,就有可能是viewport大小没有设置导致的 QScrollArea:rect是自己的坐标和大小,geometry是在父窗口位置和大小,y轴是在父窗口...

*区间(dp)

FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for giving vast amounts of milk. FJ sells one treat per day and wants to maximize the money he receives over a given p...