• 7310阅读
  • 3回复

Qgraphicsview对象初始化时所在窗口尺寸获取问题 [复制链接]

上一主题 下一主题
离线illusioncn
 

只看楼主 倒序阅读 楼主  发表于: 2011-09-21
请教大家一个问题,我在Qmainwindow中创建了一个Qsplitter(分左右两栏),右面里添加了一个Qgraphicsview对象,现在我想在程序启动时用frameSize()获取Qgraphicsview对象所在区域的尺寸(其实就是右边splitter尺寸,直接用splitter.framerect()更不对)。现在问题是,程序运行后,开始获取的大小不对(比窗口还大,分析可能是因为没有自动调整,只是随机初始了一个大小),但是我如果改变一下窗口大小,再去用同样的函数view.frameSize()查看,就会得到正确的窗口大小。那么resize过程中系统条用了那些函数去调整我得view的大小呢??能否在程序初始的时候手动调用这些函数让view自动填满splitter呢???或者说我怎么能够在程序初始化过程中(也就是mainwindow的构造函数中)获取splitter右边所分割的真实尺寸呢?
离线illusioncn

只看该作者 1楼 发表于: 2011-09-21
补充一下,我发现,只要程序初始化完成后,获取的尺寸就是正确的。应该是程序进入消息循环前已经调整了view的大小,只是不知道怎么调整的,想手动在构造函数中设置一下。保证能再构造函数中也得到正确的尺寸。
离线dbzhang800

只看该作者 2楼 发表于: 2011-09-21
凑活看看这个吧,第一个表格应该能回答你的问题

http://blog.csdn.net/dbzhang800/article/details/6780282
离线illusioncn

只看该作者 3楼 发表于: 2011-09-22
非常感谢,对症下药。问题没错,应该是在show()之前,adjust()函数没有调整窗口大小的缘故。构造函数中窗口未创建,感觉应该不能处理adjust()函数。想了一个歪招。吧需要处理的东西暂时放在show()函数后面弄就算了。
快速回复
限100 字节
 
上一个 下一个