QScrollArea 动态添加控件问题
生活随笔
收集整理的這篇文章主要介紹了
QScrollArea 动态添加控件问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、目標
QScrollArea設置最大值和最小值,動態添加控件,超出最大值則滾動,小于最大值則QScrollArea大小自動縮小。
2、遇到問題
通過重寫QScrollArea類,contentWidget調用adjustSize改變widget大小,再設置QScrollArea->setFixedSize,實際效果是debug可以正常顯示,release版本widget顯示不正常。
3、查找問題
通過打印控件邊框發現,QScrollArea是正常的,widget大小正常,但是并沒有繪制全。調試源碼發現widget的父類是QScrollArea創建的 viewport(viewport也是widget),發現viewport加上滾動條后和QScrollArea大小一致,改變widget和QScrollArea大小,viewport并沒有改變。同時發現widget大于viewport大小則會滾動
4、解決
改變QScrollArea時必須把viewport大小也修改,但要注意一點,setFixedSize會把最大值和最小值都修改,所以修改之前必須把最大值和最小值存儲下來,下次計算時要還原
5、耗時5天,希望能幫助到你
總結
以上是生活随笔為你收集整理的QScrollArea 动态添加控件问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言求:哥尼斯堡七桥问题
- 下一篇: 如何准备蓝桥杯以及刷题