class ErasingPanel: # copied for ideas for the morph panel def __init__(self, target, erase_radius=128): self.busy = True self.erase_radius = erase_radius self.target = weakref.ref(target) self.erase_rad_edit = None self.widget = None self.busy = False def set_erase_radius(self, erase_rad_edit): self.busy = True self.erase_radius = erase_rad_edit if self.erase_rad_edit != None: self.erase_rad_edit.setValue(erase_rad_edit) self.busy = False def get_widget(self): if self.widget == None: from PyQt4 import QtCore, QtGui, Qt self.widget = QtGui.QWidget() vbl = QtGui.QVBoxLayout(self.widget) vbl.setMargin(0) vbl.setSpacing(6) vbl.setObjectName("vbl") hbl = QtGui.QHBoxLayout() hbl.addWidget(QtGui.QLabel("Erase Radius:")) from valslider import ValSlider self.erase_rad_edit = ValSlider(None, (0.0, 1000.0), "") self.erase_rad_edit.setValue(int(self.erase_radius)) self.erase_rad_edit.setEnabled(True) hbl.addWidget(self.erase_rad_edit) self.unerase = QtGui.QCheckBox("Unerase") self.unerase.setChecked(False) vbl.addLayout(hbl) vbl.addWidget(self.unerase) QtCore.QObject.connect(self.erase_rad_edit, QtCore.SIGNAL("sliderReleased"), self.new_erase_radius) QtCore.QObject.connect(self.unerase, QtCore.SIGNAL("clicked(bool)"), self.unerase_checked) return self.widget def new_erase_radius(self, erase_rad_edit): if self.busy: return self.target().set_erase_radius(erase_rad_edit) def unerase_checked(self, val): if self.busy: return self.target().toggle_unerase(val)
class ErasingPanel: # copied for ideas for the morph panel def __init__(self,target,erase_radius=128): self.busy = True self.erase_radius = erase_radius self.target = weakref.ref(target) self.erase_rad_edit = None self.widget = None self.busy = False def set_erase_radius(self, erase_rad_edit): self.busy=True self.erase_radius = erase_rad_edit if self.erase_rad_edit != None: self.erase_rad_edit.setValue(erase_rad_edit) self.busy=False def get_widget(self): if self.widget == None: from PyQt4 import QtCore, QtGui, Qt self.widget = QtGui.QWidget() vbl = QtGui.QVBoxLayout(self.widget) vbl.setMargin(0) vbl.setSpacing(6) vbl.setObjectName("vbl") hbl = QtGui.QHBoxLayout() hbl.addWidget(QtGui.QLabel("Erase Radius:")) from valslider import ValSlider self.erase_rad_edit = ValSlider(None,(0.0,1000.0),"") self.erase_rad_edit.setValue(int(self.erase_radius)) self.erase_rad_edit.setEnabled(True) hbl.addWidget(self.erase_rad_edit) self.unerase = QtGui.QCheckBox("Unerase") self.unerase.setChecked(False) vbl.addLayout(hbl) vbl.addWidget(self.unerase) QtCore.QObject.connect(self.erase_rad_edit,QtCore.SIGNAL("sliderReleased"),self.new_erase_radius) QtCore.QObject.connect(self.unerase,QtCore.SIGNAL("clicked(bool)"),self.unerase_checked) return self.widget def new_erase_radius(self, erase_rad_edit): if self.busy: return self.target().set_erase_radius(erase_rad_edit) def unerase_checked(self,val): if self.busy: return self.target().toggle_unerase(val)
class EMFontInspector(QtGui.QWidget, EMLightsInspectorBase): def __init__(self,target) : QtGui.QWidget.__init__(self,None) EMLightsInspectorBase.__init__(self) self.target=weakref.ref(target) self.transform_panel = EMTransformPanel(target,self) self.transform_vbl = None # This will eventually be a vertical box layout for the transform panel self.init_fonts() self.vbl = QtGui.QVBoxLayout(self) self.vbl.setMargin(0) self.vbl.setSpacing(6) self.vbl.setObjectName("vbl") self.hbl = QtGui.QHBoxLayout() self.hbl.setMargin(0) self.hbl.setSpacing(6) self.hbl.setObjectName("hbl") self.vbl.addLayout(self.hbl) self.vbl2 = QtGui.QVBoxLayout() self.vbl2.setMargin(0) self.vbl2.setSpacing(6) self.vbl2.setObjectName("vbl2") self.hbl.addLayout(self.vbl2) self.wiretog = QtGui.QPushButton("Wire") self.wiretog.setCheckable(1) self.vbl2.addWidget(self.wiretog) self.lighttog = QtGui.QPushButton("Light") self.lighttog.setCheckable(1) self.vbl2.addWidget(self.lighttog) self.tabwidget2 = QtGui.QTabWidget() self.maintab = None self.tabwidget2.addTab(self.get_main_tab(), "Main") #self.tabwidget2.addTab(self.get_GL_tab(),"GL") self.tabwidget2.addTab(self.get_format_tab(),"Formatting") self.tabwidget2.addTab(self.get_light_tab(), "Lights") self.vbl.addWidget(self.tabwidget2) self.n3_showing = False QtCore.QObject.connect(self.cbb, QtCore.SIGNAL("currentIndexChanged(QString)"), target.setColor) QtCore.QObject.connect(self.wiretog, QtCore.SIGNAL("toggled(bool)"), target.toggle_wire) QtCore.QObject.connect(self.lighttog, QtCore.SIGNAL("toggled(bool)"), target.toggle_light) QtCore.QObject.connect(self.glcontrast, QtCore.SIGNAL("valueChanged"), target.set_GL_contrast) QtCore.QObject.connect(self.glbrightness, QtCore.SIGNAL("valueChanged"), target.set_GL_brightness) QtCore.QObject.connect(self.combo, QtCore.SIGNAL("currentIndexChanged (const QString&)"), self.on_combo_change) QtCore.QObject.connect(self.text, QtCore.SIGNAL("textChanged(const QString&)"), self.on_text_change) QtCore.QObject.connect(self.lspacing, QtCore.SIGNAL("valueChanged"), self.set_GL_lspacing) QtCore.QObject.connect(self.length, QtCore.SIGNAL("valueChanged"), self.set_GL_length) QtCore.QObject.connect(self.tsize, QtCore.SIGNAL("valueChanged(int)"), self.set_GL_tsize) QtCore.QObject.connect(self.Dfont, QtCore.SIGNAL("currentIndexChanged (const QString&)"), self.on_Dfont_change) QtCore.QObject.connect(self.bgR, QtCore.SIGNAL("valueChanged"), self.set_GL_bgR) QtCore.QObject.connect(self.bgG, QtCore.SIGNAL("valueChanged"), self.set_GL_bgG) QtCore.QObject.connect(self.bgB, QtCore.SIGNAL("valueChanged"), self.set_GL_bgB) QtCore.QObject.connect(self.bg_a, QtCore.SIGNAL("valueChanged"), self.set_GL_bg_a) def get_transform_layout(self): return self.transform_vbl def set_GL_bgR(self,bgR): self.target().set_bg_r(bgR) self.target().updateGL() def set_GL_bgG(self,bgG): self.target().set_bg_g(bgG) self.target().updateGL() def set_GL_bgB(self,bgB): self.target().set_bg_b(bgB) self.target().updateGL() def set_GL_bg_a(self,bg_a): self.target().set_bg_a(bg_a) self.target().updateGL() def init_fonts(self): self.d = {} self.l = [] platform = get_platform() if platform == "Linux": f_dir = "/usr/share/fonts/" elif platform == "Windows" or platform == "win32": f_dir = ":/windows/fonts/" elif platform in ["Apple", "Darwin"]: f_dir = "/Library/Fonts/" else: raise RuntimeError("Platform %s is not supported" %platform ) for root, dirs, files in os.walk(f_dir): for name in files: if name.find("ttf")!=-1: filename = os.path.join(root, name) self.d[name] = filename self.l.extend([name]) return self.l, self.d def on_Dfont_change(self,Dfont): self.target().font_renderer.set_font_file_name(self.d[str(Dfont)]) self.target().updateGL() def set_GL_lspacing(self,lspacing): self.target().set_lspacing(lspacing) #THE FOLLOWING IF STATEMENT DOES IS NOT EFFECTIVE if len(self.target().render_string.split("\n")) != 1: self.lspacing.setEnabled(True) else: self.lspacing.setEnabled(False) self.target().updateGL() def set_GL_length(self,length): self.target().font_renderer.set_depth(int(length)) self.target().updateGL() def set_GL_tsize(self,tsize): self.target().font_renderer.set_face_size(tsize) self.target().updateGL() def on_text_change(self,text): try: evalt=str(eval(str(text))) self.target().set_render_string(evalt) except: self.target().set_render_string(str(text)) if len(self.target().render_string.split("\n")) != 1: self.lspacing.setEnabled(True) else: self.lspacing.setEnabled(False) self.target().updateGL() def on_combo_change(self,mode): d = {} d["Extrude"] = FTGLFontMode.EXTRUDE d["Pixmap"] = FTGLFontMode.PIXMAP d["Bitmap"] = FTGLFontMode.BITMAP d["Polygon"] = FTGLFontMode.POLYGON d["Outline"] = FTGLFontMode.OUTLINE d["Texture"] = FTGLFontMode.TEXTURE self.target().font_renderer.set_font_mode(d[str(mode)]) if mode == "Extrude": self.length.setEnabled(True) else: self.length.setEnabled(False) self.target().updateGL() def update_rotations(self,t3d): self.transform_panel.update_rotations(t3d) def set_scale(self,val): self.transform_panel.set_scale(val) def set_xy_trans(self, x, y): self.transform_panel.set_xy_trans(x,y) def set_xyz_trans(self,x,y,z): self.transform_panel.set_xyz_trans(x,y,z) def get_GL_tab(self): self.gltab = QtGui.QWidget() gltab = self.gltab gltab.vbl = QtGui.QVBoxLayout(self.gltab) gltab.vbl.setMargin(0) gltab.vbl.setSpacing(6) gltab.vbl.setObjectName("Main") self.glcontrast = ValSlider(gltab,(1.0,5.0),"GLShd:") self.glcontrast.setObjectName("GLShade") self.glcontrast.setValue(1.0) gltab.vbl.addWidget(self.glcontrast) self.glbrightness = ValSlider(gltab,(-1.0,0.0),"GLBst:") self.glbrightness.setObjectName("GLBoost") self.glbrightness.setValue(0.1) self.glbrightness.setValue(0.0) gltab.vbl.addWidget(self.glbrightness) return gltab def get_main_tab(self): if ( self.maintab == None ): self.maintab = QtGui.QWidget() maintab = self.maintab maintab.vbl = QtGui.QVBoxLayout(self.maintab) maintab.vbl.setMargin(0) maintab.vbl.setSpacing(6) maintab.vbl.setObjectName("Main") self.transform_vbl = QtGui.QVBoxLayout() self.transform_panel.addWidgets(self.transform_vbl) maintab.vbl.addLayout(self.transform_vbl) self.glwidget = QtGui.QTabWidget() self.glwidget.addTab(self.get_GL_tab(),"GL") maintab.vbl.addWidget(self.glwidget) return maintab def get_format_tab(self): self.formattab = QtGui.QWidget() formattab = self.formattab formattab.vbl = QtGui.QVBoxLayout(self.formattab) formattab.vbl.setMargin(0) formattab.vbl.setSpacing(6) formattab.vbl.setObjectName("Format") self.hbl1 = QtGui.QHBoxLayout() self.text = QtGui.QLineEdit() self.text.setText("hello world") text_label = QtGui.QLabel("Enter Text:",self) text_label.setToolTip("Enters quotes to evaluate new line e.g. \"hello\\nworld\". Evaluates numerical expressions e.g. 9*9 (with out quotes)") self.hbl1.addWidget(text_label) self.hbl1.addWidget(self.text) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.Dfont = QtGui.QComboBox() for k in self.l: self.Dfont.addItem(k) self.hbl1.addWidget(QtGui.QLabel("Fonts:",self)) self.hbl1.addWidget(self.Dfont) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.tsize = QtGui.QSpinBox() self.tsize.setRange(0,500) self.tsize.setValue(32) self.hbl1.addWidget(QtGui.QLabel("Size:",self),Qt.AlignLeft) self.hbl1.addWidget(self.tsize,Qt.AlignRight) self.combo = QtGui.QComboBox() self.items = ["Extrude","Pixmap","Bitmap","Polygon","Outline","Texture"] for k in self.items: self.combo.addItem(k) self.hbl1.addWidget(QtGui.QLabel("Style:",self),Qt.AlignLeft) self.hbl1.addWidget(self.combo,Qt.AlignRight) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.lspacing = ValSlider(self,(-100.0,100.0),"Line Spacing:") self.lspacing.setObjectName("Length") self.lspacing.setValue(75.0) self.lspacing.setEnabled(False) self.hbl1.addWidget(self.lspacing) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.length = ValSlider(self,(0.0,500.0),"Length:") self.length.setObjectName("Length") self.length.setValue(75.0) self.hbl1.addWidget(self.length) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.cbb = QtGui.QComboBox() self.hbl1.addWidget(QtGui.QLabel("Material:",self)) self.hbl1.addWidget(self.cbb) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.bgtabwidget = QtGui.QTabWidget() self.maintab = None self.bgtabwidget.addTab(self.get_bgRGB_tab(), "BG RGB") self.hbl1.addWidget(self.bgtabwidget) self.n3_showing = False formattab.vbl.addLayout(self.hbl1) return formattab def get_bgRGB_tab(self): self.bgRGBtab = QtGui.QWidget() bgRGBtab = self.bgRGBtab bgRGBtab.vbl2 = QtGui.QVBoxLayout(self.bgRGBtab) bgRGBtab.vbl2.setMargin(0) bgRGBtab.vbl2.setSpacing(6) bgRGBtab.vbl2.setObjectName("BG RGB") self.hbl2 = QtGui.QHBoxLayout() self.bgR = ValSlider(self,(0,1),"R:") self.bgR.setObjectName("R") self.bgR.setValue(0.5) self.hbl2.addWidget(self.bgR) bgRGBtab.vbl2.addLayout(self.hbl2) self.hbl2 = QtGui.QHBoxLayout() self.bgG = ValSlider(self,(0,1),"G:") self.bgG.setObjectName("G") self.bgG.setValue(0.5) self.hbl2.addWidget(self.bgG) bgRGBtab.vbl2.addLayout(self.hbl2) self.hbl2 = QtGui.QHBoxLayout() self.bgB = ValSlider(self,(0,1),"B:") self.bgB.setObjectName("B") self.bgB.setValue(0.5) self.hbl2.addWidget(self.bgB) bgRGBtab.vbl2.addLayout(self.hbl2) self.hbl2 = QtGui.QHBoxLayout() self.bg_a = ValSlider(self,(0,1),"Alpha:") self.bg_a.setObjectName("Alpha") self.bg_a.setValue(1.0) self.hbl2.addWidget(self.bg_a) bgRGBtab.vbl2.addLayout(self.hbl2) return bgRGBtab # def slider_rotate(self): # self.target.load_rotation(self.get_current_rotation()) # def set_xy_trans(self, x, y): # self.x_trans.setValue(x) # self.y_trans.setValue(y) # def set_translate_scale(self, xscale,yscale,zscale): # self.x_trans.setSingleStep(xscale) # self.y_trans.setSingleStep(yscale) # self.z_trans.setSingleStep(zscale) # def update_rotations(self,t3d): # rot = t3d.get_rotation(self.src_map[str(self.src.itemText(self.src.currentIndex()))]) # # convention = self.src.currentText() # if ( self.src_map[str(convention)] == EULER_SPIN ): # self.n3.setValue(rot[self.n3.getLabel()],True) # # self.az.setValue(rot[self.az.getLabel()],True) # self.alt.setValue(rot[self.alt.getLabel()],True) # self.phi.setValue(rot[self.phi.getLabel()],True) # def slider_rotate(self): # self.target.load_rotation(self.get_current_rotation()) # def get_current_rotation(self): # convention = self.src.currentText() # rot = {} # if ( self.current_src == EULER_SPIN ): # rot[self.az.getLabel()] = self.az.getValue() # # n1 = self.alt.getValue() # n2 = self.phi.getValue() # n3 = self.n3.getValue() # # norm = sqrt(n1*n1 + n2*n2 + n3*n3) # # n1 /= norm # n2 /= norm # n3 /= norm # # rot[self.alt.getLabel()] = n1 # rot[self.phi.getLabel()] = n2 # rot[self.n3.getLabel()] = n3 # # else: # rot[self.az.getLabel()] = self.az.getValue() # rot[self.alt.getLabel()] = self.alt.getValue() # rot[self.phi.getLabel()] = self.phi.getValue() # # return Transform(self.current_src, rot) def setColors(self,colors,current_color): a = 0 for i in colors: self.cbb.addItem(i) if ( i == current_color): self.cbb.setCurrentIndex(a) a += 1
class EMFontInspector(QtGui.QWidget, EMLightsInspectorBase): def __init__(self, target): QtGui.QWidget.__init__(self, None) EMLightsInspectorBase.__init__(self) self.target = weakref.ref(target) self.transform_panel = EMTransformPanel(target, self) self.transform_vbl = None # This will eventually be a vertical box layout for the transform panel self.init_fonts() self.vbl = QtGui.QVBoxLayout(self) self.vbl.setMargin(0) self.vbl.setSpacing(6) self.vbl.setObjectName("vbl") self.hbl = QtGui.QHBoxLayout() self.hbl.setMargin(0) self.hbl.setSpacing(6) self.hbl.setObjectName("hbl") self.vbl.addLayout(self.hbl) self.vbl2 = QtGui.QVBoxLayout() self.vbl2.setMargin(0) self.vbl2.setSpacing(6) self.vbl2.setObjectName("vbl2") self.hbl.addLayout(self.vbl2) self.wiretog = QtGui.QPushButton("Wire") self.wiretog.setCheckable(1) self.vbl2.addWidget(self.wiretog) self.lighttog = QtGui.QPushButton("Light") self.lighttog.setCheckable(1) self.vbl2.addWidget(self.lighttog) self.tabwidget2 = QtGui.QTabWidget() self.maintab = None self.tabwidget2.addTab(self.get_main_tab(), "Main") #self.tabwidget2.addTab(self.get_GL_tab(),"GL") self.tabwidget2.addTab(self.get_format_tab(), "Formatting") self.tabwidget2.addTab(self.get_light_tab(), "Lights") self.vbl.addWidget(self.tabwidget2) self.n3_showing = False QtCore.QObject.connect(self.cbb, QtCore.SIGNAL("currentIndexChanged(QString)"), target.setColor) QtCore.QObject.connect(self.wiretog, QtCore.SIGNAL("toggled(bool)"), target.toggle_wire) QtCore.QObject.connect(self.lighttog, QtCore.SIGNAL("toggled(bool)"), target.toggle_light) QtCore.QObject.connect(self.glcontrast, QtCore.SIGNAL("valueChanged"), target.set_GL_contrast) QtCore.QObject.connect(self.glbrightness, QtCore.SIGNAL("valueChanged"), target.set_GL_brightness) QtCore.QObject.connect( self.combo, QtCore.SIGNAL("currentIndexChanged (const QString&)"), self.on_combo_change) QtCore.QObject.connect(self.text, QtCore.SIGNAL("textChanged(const QString&)"), self.on_text_change) QtCore.QObject.connect(self.lspacing, QtCore.SIGNAL("valueChanged"), self.set_GL_lspacing) QtCore.QObject.connect(self.length, QtCore.SIGNAL("valueChanged"), self.set_GL_length) QtCore.QObject.connect(self.tsize, QtCore.SIGNAL("valueChanged(int)"), self.set_GL_tsize) QtCore.QObject.connect( self.Dfont, QtCore.SIGNAL("currentIndexChanged (const QString&)"), self.on_Dfont_change) QtCore.QObject.connect(self.bgR, QtCore.SIGNAL("valueChanged"), self.set_GL_bgR) QtCore.QObject.connect(self.bgG, QtCore.SIGNAL("valueChanged"), self.set_GL_bgG) QtCore.QObject.connect(self.bgB, QtCore.SIGNAL("valueChanged"), self.set_GL_bgB) QtCore.QObject.connect(self.bg_a, QtCore.SIGNAL("valueChanged"), self.set_GL_bg_a) def get_transform_layout(self): return self.transform_vbl def set_GL_bgR(self, bgR): self.target().set_bg_r(bgR) self.target().updateGL() def set_GL_bgG(self, bgG): self.target().set_bg_g(bgG) self.target().updateGL() def set_GL_bgB(self, bgB): self.target().set_bg_b(bgB) self.target().updateGL() def set_GL_bg_a(self, bg_a): self.target().set_bg_a(bg_a) self.target().updateGL() def init_fonts(self): self.d = {} self.l = [] platform = get_platform() if platform == "Linux": f_dir = "/usr/share/fonts/" elif platform == "Windows" or platform == "win32": f_dir = ":/windows/fonts/" elif platform in ["Apple", "Darwin"]: f_dir = "/Library/Fonts/" else: raise RuntimeError("Platform %s is not supported" % platform) for root, dirs, files in os.walk(f_dir): for name in files: if name.find("ttf") != -1: filename = os.path.join(root, name) self.d[name] = filename self.l.extend([name]) return self.l, self.d def on_Dfont_change(self, Dfont): self.target().font_renderer.set_font_file_name(self.d[str(Dfont)]) self.target().updateGL() def set_GL_lspacing(self, lspacing): self.target().set_lspacing(lspacing) #THE FOLLOWING IF STATEMENT DOES IS NOT EFFECTIVE if len(self.target().render_string.split("\n")) != 1: self.lspacing.setEnabled(True) else: self.lspacing.setEnabled(False) self.target().updateGL() def set_GL_length(self, length): self.target().font_renderer.set_depth(int(length)) self.target().updateGL() def set_GL_tsize(self, tsize): self.target().font_renderer.set_face_size(tsize) self.target().updateGL() def on_text_change(self, text): try: evalt = str(eval(str(text))) self.target().set_render_string(evalt) except: self.target().set_render_string(str(text)) if len(self.target().render_string.split("\n")) != 1: self.lspacing.setEnabled(True) else: self.lspacing.setEnabled(False) self.target().updateGL() def on_combo_change(self, mode): d = {} d["Extrude"] = FTGLFontMode.EXTRUDE d["Pixmap"] = FTGLFontMode.PIXMAP d["Bitmap"] = FTGLFontMode.BITMAP d["Polygon"] = FTGLFontMode.POLYGON d["Outline"] = FTGLFontMode.OUTLINE d["Texture"] = FTGLFontMode.TEXTURE self.target().font_renderer.set_font_mode(d[str(mode)]) if mode == "Extrude": self.length.setEnabled(True) else: self.length.setEnabled(False) self.target().updateGL() def update_rotations(self, t3d): self.transform_panel.update_rotations(t3d) def set_scale(self, val): self.transform_panel.set_scale(val) def set_xy_trans(self, x, y): self.transform_panel.set_xy_trans(x, y) def set_xyz_trans(self, x, y, z): self.transform_panel.set_xyz_trans(x, y, z) def get_GL_tab(self): self.gltab = QtGui.QWidget() gltab = self.gltab gltab.vbl = QtGui.QVBoxLayout(self.gltab) gltab.vbl.setMargin(0) gltab.vbl.setSpacing(6) gltab.vbl.setObjectName("Main") self.glcontrast = ValSlider(gltab, (1.0, 5.0), "GLShd:") self.glcontrast.setObjectName("GLShade") self.glcontrast.setValue(1.0) gltab.vbl.addWidget(self.glcontrast) self.glbrightness = ValSlider(gltab, (-1.0, 0.0), "GLBst:") self.glbrightness.setObjectName("GLBoost") self.glbrightness.setValue(0.1) self.glbrightness.setValue(0.0) gltab.vbl.addWidget(self.glbrightness) return gltab def get_main_tab(self): if (self.maintab == None): self.maintab = QtGui.QWidget() maintab = self.maintab maintab.vbl = QtGui.QVBoxLayout(self.maintab) maintab.vbl.setMargin(0) maintab.vbl.setSpacing(6) maintab.vbl.setObjectName("Main") self.transform_vbl = QtGui.QVBoxLayout() self.transform_panel.addWidgets(self.transform_vbl) maintab.vbl.addLayout(self.transform_vbl) self.glwidget = QtGui.QTabWidget() self.glwidget.addTab(self.get_GL_tab(), "GL") maintab.vbl.addWidget(self.glwidget) return maintab def get_format_tab(self): self.formattab = QtGui.QWidget() formattab = self.formattab formattab.vbl = QtGui.QVBoxLayout(self.formattab) formattab.vbl.setMargin(0) formattab.vbl.setSpacing(6) formattab.vbl.setObjectName("Format") self.hbl1 = QtGui.QHBoxLayout() self.text = QtGui.QLineEdit() self.text.setText("hello world") text_label = QtGui.QLabel("Enter Text:", self) text_label.setToolTip( "Enters quotes to evaluate new line e.g. \"hello\\nworld\". Evaluates numerical expressions e.g. 9*9 (with out quotes)" ) self.hbl1.addWidget(text_label) self.hbl1.addWidget(self.text) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.Dfont = QtGui.QComboBox() for k in self.l: self.Dfont.addItem(k) self.hbl1.addWidget(QtGui.QLabel("Fonts:", self)) self.hbl1.addWidget(self.Dfont) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.tsize = QtGui.QSpinBox() self.tsize.setRange(0, 500) self.tsize.setValue(32) self.hbl1.addWidget(QtGui.QLabel("Size:", self), Qt.AlignLeft) self.hbl1.addWidget(self.tsize, Qt.AlignRight) self.combo = QtGui.QComboBox() self.items = [ "Extrude", "Pixmap", "Bitmap", "Polygon", "Outline", "Texture" ] for k in self.items: self.combo.addItem(k) self.hbl1.addWidget(QtGui.QLabel("Style:", self), Qt.AlignLeft) self.hbl1.addWidget(self.combo, Qt.AlignRight) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.lspacing = ValSlider(self, (-100.0, 100.0), "Line Spacing:") self.lspacing.setObjectName("Length") self.lspacing.setValue(75.0) self.lspacing.setEnabled(False) self.hbl1.addWidget(self.lspacing) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.length = ValSlider(self, (0.0, 500.0), "Length:") self.length.setObjectName("Length") self.length.setValue(75.0) self.hbl1.addWidget(self.length) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.cbb = QtGui.QComboBox() self.hbl1.addWidget(QtGui.QLabel("Material:", self)) self.hbl1.addWidget(self.cbb) formattab.vbl.addLayout(self.hbl1) self.hbl1 = QtGui.QHBoxLayout() self.bgtabwidget = QtGui.QTabWidget() self.maintab = None self.bgtabwidget.addTab(self.get_bgRGB_tab(), "BG RGB") self.hbl1.addWidget(self.bgtabwidget) self.n3_showing = False formattab.vbl.addLayout(self.hbl1) return formattab def get_bgRGB_tab(self): self.bgRGBtab = QtGui.QWidget() bgRGBtab = self.bgRGBtab bgRGBtab.vbl2 = QtGui.QVBoxLayout(self.bgRGBtab) bgRGBtab.vbl2.setMargin(0) bgRGBtab.vbl2.setSpacing(6) bgRGBtab.vbl2.setObjectName("BG RGB") self.hbl2 = QtGui.QHBoxLayout() self.bgR = ValSlider(self, (0, 1), "R:") self.bgR.setObjectName("R") self.bgR.setValue(0.5) self.hbl2.addWidget(self.bgR) bgRGBtab.vbl2.addLayout(self.hbl2) self.hbl2 = QtGui.QHBoxLayout() self.bgG = ValSlider(self, (0, 1), "G:") self.bgG.setObjectName("G") self.bgG.setValue(0.5) self.hbl2.addWidget(self.bgG) bgRGBtab.vbl2.addLayout(self.hbl2) self.hbl2 = QtGui.QHBoxLayout() self.bgB = ValSlider(self, (0, 1), "B:") self.bgB.setObjectName("B") self.bgB.setValue(0.5) self.hbl2.addWidget(self.bgB) bgRGBtab.vbl2.addLayout(self.hbl2) self.hbl2 = QtGui.QHBoxLayout() self.bg_a = ValSlider(self, (0, 1), "Alpha:") self.bg_a.setObjectName("Alpha") self.bg_a.setValue(1.0) self.hbl2.addWidget(self.bg_a) bgRGBtab.vbl2.addLayout(self.hbl2) return bgRGBtab # def slider_rotate(self): # self.target.load_rotation(self.get_current_rotation()) # def set_xy_trans(self, x, y): # self.x_trans.setValue(x) # self.y_trans.setValue(y) # def set_translate_scale(self, xscale,yscale,zscale): # self.x_trans.setSingleStep(xscale) # self.y_trans.setSingleStep(yscale) # self.z_trans.setSingleStep(zscale) # def update_rotations(self,t3d): # rot = t3d.get_rotation(self.src_map[str(self.src.itemText(self.src.currentIndex()))]) # # convention = self.src.currentText() # if ( self.src_map[str(convention)] == EULER_SPIN ): # self.n3.setValue(rot[self.n3.getLabel()],True) # # self.az.setValue(rot[self.az.getLabel()],True) # self.alt.setValue(rot[self.alt.getLabel()],True) # self.phi.setValue(rot[self.phi.getLabel()],True) # def slider_rotate(self): # self.target.load_rotation(self.get_current_rotation()) # def get_current_rotation(self): # convention = self.src.currentText() # rot = {} # if ( self.current_src == EULER_SPIN ): # rot[self.az.getLabel()] = self.az.getValue() # # n1 = self.alt.getValue() # n2 = self.phi.getValue() # n3 = self.n3.getValue() # # norm = sqrt(n1*n1 + n2*n2 + n3*n3) # # n1 /= norm # n2 /= norm # n3 /= norm # # rot[self.alt.getLabel()] = n1 # rot[self.phi.getLabel()] = n2 # rot[self.n3.getLabel()] = n3 # # else: # rot[self.az.getLabel()] = self.az.getValue() # rot[self.alt.getLabel()] = self.alt.getValue() # rot[self.phi.getLabel()] = self.phi.getValue() # # return Transform(self.current_src, rot) def setColors(self, colors, current_color): a = 0 for i in colors: self.cbb.addItem(i) if (i == current_color): self.cbb.setCurrentIndex(a) a += 1