在学习Designer中ItemViews类部件时,这些部件都有个父类QAbstractScrollArea,该父类是Qt滚动区域的低级抽象。该区域提供一个称为viewport的中心小部件,在该小部件中滚动区域的内容可以被滚动展现对应内容,即要展现内容的可见部分在viewport中呈现。
老猿以前没有研究过绘图相关的内容,对viewport感到很困惑,经查阅资料,老猿理解:
1、QAbstractScrollArea本身都带有viewPort,且缺省情况下viewport大小和QAbstractScrollArea的大小一致;
2、如果出现滚动条,则viewport的大小比QAbstractScrollArea大小要减少滚动条对应区域;
3、viewport对应的是设备(如屏幕)的物理区域,QAbstractScrollArea本身的窗口对应的是逻辑区域,逻辑区域和物理区域存在映射,缺省这个映射比例是1:1的。
更多关于viewport的内容与绘图相关,请参考《Qt坐标系统之窗口/视口变换原理》、《关于窗口和视口的理解》。