#視窗基礎屬性
defbasic
(self)
:#設定標題,大小,圖示
self.setwindowtitle(
"gt1"
) self.resize(
1100
,650
) self.setwindowicon(qicon(
"./image/gt1.png"))
defkuangti
(self)
: frame = qframe(
) vl = qvboxlayout(
) vtkwidget = qvtkrenderwindowinteractor(
) vl.addwidget(vtkwidget)
#vl.setcontentsmargins(0,0,0,0)
ren = vtk.vtkrenderer(
) ren.setbackground(
0.01
,0.2
,0.01
)#renderer.getactivecamera().setposition() #設定視點位置
#renderer.getactivecamera().setviewup(0, 1, 0) #設定視點方向
vtkwidget.getrenderwindow(
).addrenderer(ren)
self.iren = vtkwidget.getrenderwindow(
).getinteractor(
) self.creatobj(ren)
self.iren.initialize(
) frame.setlayout(vl)
return frame
defcreatobj
(self,ren)
:# create source
filename =
"f:\dvpycode\pyqtgl\\0pengl\\1.obj"
reader = vtk.vtkobjreader(
) reader.setfilename(filename)
reader.update(
)) ))
# create an actor
actor = vtk.vtkactor(
)
ren.addactor(actor)
ren.resetcamera(
)if __name__ ==
"__main__"
: win = vtkmw(
) win.show(
)#win.iren.initialize()
))引用:
vtk對obj檔案的讀取
感謝feifei97
特別感謝ydsf521。
在這次任務中想把obj模型顯示鑲嵌進pyqt gui的過程當中,兩個思路都是看他的文章,乙個是qopengl 乙個是vtk。qopengl那篇也給了我想當大的啟發。
結合其他文章運用qopenglwidget和pygame協同,查詢大量的資料應該是不行,pygame會占用程序,pyqt就沒辦法工作了。至於怎麼解決我暫時是因為工作需要沒辦法深究了。這方面資料也顯得比較少。
對我來說在opengl的彎路上一意孤行了好幾周。今天的vtk真是豁然開朗。
特別是obj的讀取。vtk自己居然有乙個類直接讀。免去了opengl對obj檔案寫入的**段。
(當然了具體適用性還沒有繼續發掘,今天才幹到在pyqt裡顯示obj模型)
從去年9月份開始學習python基礎語法
物件導向的方法、檔案的開啟讀取等等
然後研究gui 從tkinter wxpython 到 pyqt
資料從csv檔案到sqlite
再研究 資料的二維圖表表達 matlib matplotlib
到後來obj模型的顯示
外行人也算經歷了好幾個瓶頸。真的感謝網上得來的各種資料。
彎路實在是走了太多,我也不知道為什麼,可能是因為就我自己乙個人操作沒得討論,再加上跨專業了,沒有專業知識基礎。
在網上找資料的過程中發現這個事情用c++應該更合適一些。有更多的資料支援。
當初選了python學習可能首先就不太合適,相比c++,py的資料真的太少了。
好多東西baidu bing查都查不到。
帶上過年和疫情,obj顯示的問題卡了有月把了,今天好歹顯示成功了obj模型。長舒口氣。
————————————————————————————
好多人問主程式,主程式裡太亂了許多其他功能就不發了。
我大概說一下有用的部分。
from vtk1 import vtkmw as vtkmw
class
mainwindow
(qmainwindow, ui_mainwindow)
:def
__init__
(self, parent=
none):
super
(mainwindow, self)
.__init__(parent)
self.setupui(self)
self.gridlayout_1 = qgridlayout(self.groupbox)
# 繼承容器groupbox
self.myvtk=vtkmw(
) self.gridlayout_1.addwidget(self.myvtk,0,
1)
雖然是一些片段,應該就說清楚了如何呼叫並嵌入。
希望對大家有所幫助。
怎麼在mediapipe中只保留框體資訊
發現 mediapipe 框架 顯示人臉框體這塊,會出現 face,相似度 還有5個小圓圈 等資訊,於是想著 去掉這些顯示,只留下框體 恩,是其他不顯示 那麼位置 又在 呢?對於 人臉檢測 demo 而言 檔案mediapipe master mediapipe util annotation re...
VC 6 0執行緒中建立非模態對話方塊體會
關於 執行緒中建立非模態對話方塊 我試了很多方法,但是結果都是令人失望沒有成功。但是經過我不懈的嘗試終於找到了乙個自己的方法,我不知道是否是標準的方法。估計有很多人都遇到過 執行緒中建立非模態對話方塊 的難題,所以我把我的方法拿出來供大家共同學習交流之用。主要以下方法針對基於對話方塊的程式。defi...
WebBrowser中顯示亂碼
最近用webbrowser巢狀網頁,同時不影響巢狀的頁面裡面的操作,並往網頁裡面傳引數,其中引數中又中文。但是在網頁裡面顯示引數時卻顯示亂碼。於是用convert.tobase64string encoding.utf8.getbytes paras 對要傳的引數進行序列化編碼。然後用encodin...