【学习笔记】C++ GUI Qt4 第六章 6.4 滚动区域 和 6.5 停靠窗口和工具栏

6.4 滚动区域

QScrollArea类提供了一个可以滚动的视口和两个滚动条。如果想给一个窗口部件添加一个滚动条,则可以使用一一个QScrollArea类来实现,这可能要比我们自己通过初始化QScrollBar,然后再实现它的滚动等功能简单得多。

QScrollArea的使用方法,就是以我们想要添加滚动条的窗口部件为参数调用setWidget()。如果这个窗口部件的父对象不是视口,QSrollArea会自动把这个窗口部件的父对象重定义为该视口(可以通过QSrollArea::viewport( )来访问) ,并且让它成为视口的子对象。例如,如果想在第5章中开发的IconEditor 窗口部件的周围添加滚动条(如图6. 11所示),则可以编写如下代码:


在QT中 WIdget在构建并显示以后会有一 个默认的大小,而此时其实已经存在窗口和视口,只是这两者在没有人为改变时大小是一样的,所以你可以忽略二者的存在;QT在绘图时是先在窗口中绘制然后再映射到视口上去的。 视口就是代表我们的物理窗口,窗口是代表绘图区(QT的画板)使用的逻辑坐标。 在两者相同的情况下也是一一映射关系,所以你会看到所画即所得。 但是当两者不同时,如果不理解就会觉得莫名其妙。
原文链接:https://blog.csdn.net/qjclinux/article/details/82864316


int main(int argc, char *argv[])
{
   
    QApplication app(argc, argv);
    IconEditor iconEditor;
    iconEditor.setWindowTitle(QObject::tr("Icon Editor"));
    iconEditor.setIconImage(QImage(":/images/mouse.png"));
    //iconEditor.show();
    QScrollArea scrollArea;
    //error: C2664: “void QScrollArea::setWidget(QWidget *)”: 无法将参数 1 从“IconEditor”转换为“QWidget *”没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
    scrollArea.setWidget(iconEditor);
    scrollArea.viewport()->setBackgroundRole
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值