Posted on 2008-12-03 21:27
美洲豹 閱讀(569)
評論(0) 編輯 收藏 引用
繼續接著將其嵌入到窗口里面.嵌入的關鍵是利用QWidget.winId(),將NameValuePairList中的'externalWindowHandle'值設為要嵌入窗口的Handle,
這樣則可以嵌入了
結合QtDesigner與pyuic4將界面導出成Ui_MainWindow.py,而后繼承一個MainWindow類,在這個基礎上將ui包含進來,將界面與代碼分離,則可以繼續往下寫。現在的效果如下,弄了好久,不知道,窗口的大小為什么不能調.

為什么只顯示一部分呢?改變frame的大小也沒有作用。
后來,改了一下,將在初始化OgreView的時候,將窗口id的string傳入到其中作為參數。最后可以顯示如下的圖片。但仍不能達到效果,需要再改一下。

后來通過跟蹤之后,發現是在resizeEvent中event中傳入的size().width(),size().height()的值是100,30,過小,并且將原來在setupViewport中改用getActualWidth(),getActualHeight()等來做。
self.mCamera.setAspectRatio(float(self.mViewport.getActualWidth())/float(self.mViewport.getActualHeight()) )
現在,需要做的是將resizeEvent中的值改掉。查一下它那里是出了什么問題。
下圖是去除了resizeEvent的情況.

現在可以算是有個初始的可顯示的版本。
TODO但是resizeEvent遲早要搞定,因為后面對窗口縮放的時候必然會改變窗口的大小。
現在還暫時不知道PyQt4中的resizeEvent中為什么其event得到的size()不是窗口的大小,而是一個很小的值,就像第一張圖片一樣,現在還暫時
不知道如何更正這個錯誤。