各种情景下的初始代码,方便直接拷贝修改
Qt Mainwindow窗口
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon,QPixmap,QFont
from PyQt5.QtWidgets import (QApplication, QMainWindow, QToolBar, QLabel, QCheckBox, QHBoxLayout, QVBoxLayout )
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.initToolBar()
self.resize(1024, 720)
self.addToolBar(self.toolBar)
def initToolBar(self):
self.toolBar = QToolBar()
self.lbl_1 = QLabel("反射次数: ")
self.chk_reflex1 = QCheckBox("一次")
self.chk_reflex2 = QCheckBox("二次")
self.chk_reflex3 = QCheckBox("三次")
self.toolBar.addWidget(self.lbl_1)
self.toolBar.addWidget(self.chk_reflex1)
self.toolBar.addWidget(self.chk_reflex2)
self.toolBar.addWidget(self.chk_reflex3)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
最简单的VTK窗口
import vtkmodules.all as vtk
if __name__ == "__main__":
cone_a = vtk.vtkConeSource()
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(cone_a.GetOutputPort())
coneActor = vtk.vtkActor()
coneActor.SetMapper(mapper)
ren1 = vtk.vtkRenderer()
ren1.AddActor(coneActor)
ren1.SetBackground(1.0, 1.0, 1.0)
ren1.SetBackground2(0.1, 0.2, 0.4)
ren1.SetGradientBackground(1)
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren1)
renWin.SetSize(640, 480)
renWin.Render()
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
style = vtk.vtkInteractorStyleTrackballCamera()
iren.SetInteractorStyle(style)
iren.Initialize()
iren.Start()
PyQt5中嵌入VTK窗口
import sys
import vtkmodules.all as vtk
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication
from vtkmodules.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QMainWindow.__init__(self, parent)
self.frame = QtWidgets.QFrame()
self.vtkWidget = QVTKRenderWindowInteractor(self.frame)
main_layout = QtWidgets.QVBoxLayout()
main_layout.addWidget(self.vtkWidget)
self.ren = vtk.vtkRenderer()
self.vtkWidget.GetRenderWindow().AddRenderer(self.ren)
self.iren = self.vtkWidget.GetRenderWindow().GetInteractor()
style = vtk.vtkInteractorStyleTrackballCamera()
self.iren.SetInteractorStyle(style)
source = vtk.vtkConeSource()
source.SetCenter(0, 0, 0)
source.SetRadius(1)
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(source.GetOutputPort())
actor = vtk.vtkActor()
actor.SetMapper(mapper)
self.ren.AddActor(actor)
self.ren.ResetCamera()
self.frame.setLayout(main_layout)
self.setCentralWidget(self.frame)
self.show()
self.iren.Initialize()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())