Exemplo n.º 1
0
    def get_texture_tab(self):
        if (self.texturetab == None):
            self.texturetab = QtGui.QWidget()
            texturetab = self.texturetab
            texturetab.vbl = QtGui.QVBoxLayout(self.texturetab)
            texturetab.vbl.setMargin(0)
            texturetab.vbl.setSpacing(6)
            texturetab.vbl.setObjectName("Main")

            self.contrast = ValSlider(texturetab, (0.0, 20.0), "Cont:")
            self.contrast.setObjectName("contrast")
            self.contrast.setValue(10.0)
            texturetab.vbl.addWidget(self.contrast)

            self.bright = ValSlider(texturetab, (-5.0, 5.0), "Brt:")
            self.bright.setObjectName("bright")
            self.bright.setValue(0.1)
            self.bright.setValue(0.0)
            texturetab.vbl.addWidget(self.bright)

            #self.glcontrast = ValSlider(texturetab,(1.0,5.0),"GLShd:")
            #self.glcontrast.setObjectName("GLShade")
            #self.glcontrast.setValue(1.0)
            #texturetab.vbl.addWidget(self.glcontrast)

            #self.glbrightness = ValSlider(texturetab,(-1.0,0.0),"GLBst:")
            #self.glbrightness.setObjectName("GLBoost")
            #self.glbrightness.setValue(0.1)
            #self.glbrightness.setValue(0.0)
            #texturetab.vbl.addWidget(self.glbrightness)

        return self.texturetab
Exemplo n.º 2
0
    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("GL")

        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)

        self.material_tab_widget = QtGui.QTabWidget()
        self.ambient_tab = self.get_RGB_tab("ambient")
        self.material_tab_widget.addTab(self.ambient_tab, "Ambient")

        self.diffuse_tab = self.get_RGB_tab("diffuse")
        self.material_tab_widget.addTab(self.diffuse_tab, "Diffuse")

        self.specular_tab = self.get_RGB_tab("specular")
        self.material_tab_widget.addTab(self.specular_tab, "Specular")

        self.emission_tab = self.get_RGB_tab("emission")
        self.material_tab_widget.addTab(self.emission_tab, "Emission")

        gltab.vbl.addWidget(self.material_tab_widget)

        self.shininess = ValSlider(gltab, (0, 128), "Shininess:")
        self.shininess.setObjectName("Shininess")
        self.shininess.setValue(64)
        gltab.vbl.addWidget(self.shininess)

        self.hbl_color = QtGui.QHBoxLayout()
        self.hbl_color.setMargin(0)
        self.hbl_color.setSpacing(6)
        self.hbl_color.setObjectName("Material")
        gltab.vbl.addLayout(self.hbl_color)

        self.color_label = QtGui.QLabel()
        self.color_label.setText('Material')
        self.hbl_color.addWidget(self.color_label)

        self.cbb = QtGui.QComboBox(gltab)
        self.hbl_color.addWidget(self.cbb)

        return gltab
Exemplo n.º 3
0
    def get_main_tab(self):

        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.hbl_slice = QtGui.QHBoxLayout()
        self.hbl_slice.setMargin(0)
        self.hbl_slice.setSpacing(6)
        self.hbl_slice.setObjectName("Axis")
        maintab.vbl.addLayout(self.hbl_slice)

        self.slice = ValSlider(maintab, (0.0, 10.0), "Slice:")
        self.slice.setObjectName("slice")
        self.slice.setValue(1.0)
        self.hbl_slice.addWidget(self.slice)

        self.axisCombo = QtGui.QComboBox(maintab)
        self.axisCombo.addItem(' z ')
        self.axisCombo.addItem(' y ')
        self.axisCombo.addItem(' x ')
        self.axisCombo.addItem(' track ')
        self.hbl_slice.addWidget(self.axisCombo)

        self.contrast = ValSlider(maintab, (0.0, 20.0), "Cont:")
        self.contrast.setObjectName("contrast")
        self.contrast.setValue(1.0)
        maintab.vbl.addWidget(self.contrast)

        self.bright = ValSlider(maintab, (-5.0, 5.0), "Brt:")
        self.bright.setObjectName("bright")
        self.bright.setValue(0.1)
        self.bright.setValue(0.0)
        maintab.vbl.addWidget(self.bright)

        self.glcontrast = ValSlider(maintab, (1.0, 5.0), "GLShd:")
        self.glcontrast.setObjectName("GLShade")
        self.glcontrast.setValue(1.0)
        maintab.vbl.addWidget(self.glcontrast)

        self.glbrightness = ValSlider(maintab, (-1.0, 0.0), "GLBst:")
        self.glbrightness.setObjectName("GLBoost")
        self.glbrightness.setValue(0.1)
        self.glbrightness.setValue(0.0)
        maintab.vbl.addWidget(self.glbrightness)

        self.transform_panel.addWidgets(maintab.vbl)

        return maintab
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
    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.thr = ValSlider(maintab, (0.0, 4.0), "Thr:")
            self.thr.setObjectName("thr")
            self.thr.setValue(0.5)
            maintab.vbl.addWidget(self.thr)

            self.hbl_smp = QtGui.QHBoxLayout()
            self.hbl_smp.setMargin(0)
            self.hbl_smp.setSpacing(6)
            self.hbl_smp.setObjectName("Sample")
            maintab.vbl.addLayout(self.hbl_smp)

            self.smp_label = QtGui.QLabel()
            self.smp_label.setText('Sample Level')
            self.hbl_smp.addWidget(self.smp_label)

            self.smp = QtGui.QSpinBox(maintab)
            self.smp.setValue(1)
            self.hbl_smp.addWidget(self.smp)

            self.rotation_sliders.addWidgets(maintab.vbl)

        return self.maintab
Exemplo n.º 6
0
	def get_main_tab(self):
	
		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.contrast = ValSlider(maintab,(0.0,20.0),"Cont:")
		self.contrast.setObjectName("contrast")
		self.contrast.setValue(1.0)
		maintab.vbl.addWidget(self.contrast)

		self.bright = ValSlider(maintab,(-5.0,5.0),"Brt:")
		self.bright.setObjectName("bright")
		self.bright.setValue(0.1)
		self.bright.setValue(0.0)
		maintab.vbl.addWidget(self.bright)

		self.hbl_smp = QtGui.QHBoxLayout()
		self.hbl_smp.setMargin(0)
		self.hbl_smp.setSpacing(6)
		self.hbl_smp.setObjectName("Texture Oversampling")
		maintab.vbl.addLayout(self.hbl_smp)
		
		self.smp_label = QtGui.QLabel()
		self.smp_label.setText('Texture Oversampling')
		self.hbl_smp.addWidget(self.smp_label)
		
		self.smp = QtGui.QSpinBox(maintab)
		self.smp.setMaximum(10)
		self.smp.setMinimum(1)
		self.smp.setValue(1)
		self.hbl_smp.addWidget(self.smp)

		self.lowlim=0
		self.highlim=1.0
		self.busy=0

		self.rotation_sliders.addWidgets(maintab.vbl)

		return maintab
Exemplo n.º 7
0
	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
Exemplo n.º 8
0
    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
Exemplo n.º 9
0
    def set_src(self, val):
        t3d = self.get_current_rotation()

        if (self.n3_showing):
            self.parent().get_transform_layout().removeWidget(self.n3)
            self.n3.deleteLater()
            self.n3_showing = False
            self.az.setRange(-360, 360)
            self.alt.setRange(-180, 180)
            self.phi.setRange(-360, 660)

        if (self.src_map[str(val)] == "spider"):
            self.az.setLabel('phi')
            self.alt.setLabel('theta')
            self.phi.setLabel('psi')
        elif (self.src_map[str(val)] == "eman"):
            self.az.setLabel('az')
            self.alt.setLabel('alt')
            self.phi.setLabel('phi')
        elif (self.src_map[str(val)] == "imagic"):
            self.az.setLabel('alpha')
            self.alt.setLabel('beta')
            self.phi.setLabel('gamma')
        elif (self.src_map[str(val)] == "xyz"):
            self.az.setLabel('xtilt')
            self.alt.setLabel('ytilt')
            self.phi.setLabel('ztilt')
        elif (self.src_map[str(val)] == "mrc"):
            self.az.setLabel('phi')
            self.alt.setLabel('theta')
            self.phi.setLabel('omega')
        elif (self.src_map[str(val)] == "spin"):
            self.az.setLabel('omega')
            self.alt.setRange(-1, 1)
            self.phi.setRange(-1, 1)

            self.alt.setLabel('n1')
            self.phi.setLabel('n2')

            self.n3 = ValSlider(self.parent(), (-360.0, 360.0), "n3", -1)
            self.n3.setRange(-1, 1)
            self.n3.setObjectName("n3")
            self.parent().get_transform_layout().addWidget(self.n3)
            QtCore.QObject.connect(self.n3, QtCore.SIGNAL("valueChanged"),
                                   self.slider_rotate)
            self.n3_showing = True

        self.current_src = self.src_map[str(val)]
        self.update_rotations(t3d)
Exemplo n.º 10
0
	def set_src(self, val):
		t3d = self.get_current_rotation()
		
		if (self.n3_showing) :
			self.vbl.removeWidget(self.n3)
			self.n3.deleteLater()
			self.n3_showing = False
			self.az.setRange(-360,360)
			self.alt.setRange(-180,180)
			self.phi.setRange(-360,660)
		
		if ( self.src_map[str(val)] == EULER_SPIDER ):
			self.az.setLabel('phi')
			self.alt.setLabel('theta')
			self.phi.setLabel('psi')
		elif ( self.src_map[str(val)] == EULER_EMAN ):
			self.az.setLabel('az')
			self.alt.setLabel('alt')
			self.phi.setLabel('phi')
		elif ( self.src_map[str(val)] == EULER_IMAGIC ):
			self.az.setLabel('alpha')
			self.alt.setLabel('beta')
			self.phi.setLabel('gamma')
		elif ( self.src_map[str(val)] == EULER_XYZ ):
			self.az.setLabel('xtilt')
			self.alt.setLabel('ytilt')
			self.phi.setLabel('ztilt')
		elif ( self.src_map[str(val)] == EULER_MRC ):
			self.az.setLabel('phi')
			self.alt.setLabel('theta')
			self.phi.setLabel('omega')
		elif ( self.src_map[str(val)] == EULER_SPIN ):
			self.az.setLabel('omega')
			self.alt.setRange(-1,1)
			self.phi.setRange(-1,1)
			
			self.alt.setLabel('n1')
			self.phi.setLabel('n2')
			
			self.n3 = ValSlider(self,(-360.0,360.0),"n3",-1)
			self.n3.setRange(-1,1)
			self.n3.setObjectName("n3")
			self.vbl.addWidget(self.n3)
			QtCore.QObject.connect(self.n3, QtCore.SIGNAL("valueChanged"), self.slider_rotate)
			self.n3_showing = True
		
		self.current_src = self.src_map[str(val)]
		self.update_rotations(t3d)
Exemplo n.º 11
0
    def __init__(self,
                 application,
                 apix=1.0,
                 voltage=300.0,
                 cs=4.1,
                 ac=10.0,
                 samples=256):
        """CTF simulation dialog
		"""
        try:
            from emimage2d import EMImage2DWidget
        except:
            print "Cannot import EMAN image GUI objects (EMImage2DWidget)"
            sys.exit(1)
        try:
            from emplot2d import EMPlot2DWidget
        except:
            print "Cannot import EMAN plot GUI objects (is matplotlib installed?)"
            sys.exit(1)

        self.app = weakref.ref(application)

        self.df_voltage = voltage
        self.df_apix = apix
        self.df_cs = cs
        self.df_ac = ac
        self.df_samples = samples
        self.img = None

        QtGui.QWidget.__init__(self, None)
        self.setWindowIcon(QtGui.QIcon(get_image_directory() + "ctf.png"))

        self.data = []
        self.curset = 0
        self.plotmode = 0

        self.guiim = EMImage2DWidget(application=self.app())
        self.guiiminit = True  # a flag that's used to auto resize the first time the gui's set_data function is called
        self.guiplot = EMPlot2DWidget(application=self.app())
        #		self.guirealim=EMImage2DWidget(application=self.app())	# This will show the original particle images

        #		self.guirealim.connect(self.guirealim,QtCore.SIGNAL("keypress"),self.realimgkey)
        self.guiim.connect(self.guiim, QtCore.SIGNAL("mousedown"),
                           self.imgmousedown)
        self.guiim.connect(self.guiim, QtCore.SIGNAL("mousedrag"),
                           self.imgmousedrag)
        self.guiim.connect(self.guiim, QtCore.SIGNAL("mouseup"),
                           self.imgmouseup)
        self.guiplot.connect(self.guiplot, QtCore.SIGNAL("mousedown"),
                             self.plotmousedown)

        self.guiim.mmode = "app"

        # This object is itself a widget we need to set up
        self.hbl = QtGui.QHBoxLayout(self)
        self.hbl.setMargin(0)
        self.hbl.setSpacing(6)
        self.hbl.setObjectName("hbl")

        # plot list and plot mode combobox
        self.vbl2 = QtGui.QVBoxLayout()
        self.setlist = MyListWidget(self)
        self.setlist.setSizePolicy(QtGui.QSizePolicy.Preferred,
                                   QtGui.QSizePolicy.Expanding)
        self.vbl2.addWidget(self.setlist)

        self.splotmode = QtGui.QComboBox(self)
        self.splotmode.addItem("Amplitude")
        self.splotmode.addItem("Intensity")
        self.splotmode.addItem("Int w sum")
        self.splotmode.addItem("Amp w sum")
        self.vbl2.addWidget(self.splotmode)
        self.hbl.addLayout(self.vbl2)

        # ValSliders for CTF parameters
        self.vbl = QtGui.QVBoxLayout()
        self.vbl.setMargin(0)
        self.vbl.setSpacing(6)
        self.vbl.setObjectName("vbl")
        self.hbl.addLayout(self.vbl)

        #self.samp = ValSlider(self,(0,5.0),"Amp:",0)
        #self.vbl.addWidget(self.samp)

        self.imginfo = QtGui.QLabel("Info", self)
        self.vbl.addWidget(self.imginfo)

        self.sdefocus = ValSlider(self, (0, 5), "Defocus:", 0, 90)
        self.vbl.addWidget(self.sdefocus)

        self.sbfactor = ValSlider(self, (0, 1600), "B factor:", 0, 90)
        self.vbl.addWidget(self.sbfactor)

        self.sdfdiff = ValSlider(self, (0, 1), "DF Diff:", 0, 90)
        self.vbl.addWidget(self.sdfdiff)

        self.sdfang = ValSlider(self, (0, 180), "Df Angle:", 0, 90)
        self.vbl.addWidget(self.sdfang)

        self.sampcont = ValSlider(self, (0, 100), "% AC", 0, 90)
        self.vbl.addWidget(self.sampcont)

        self.sapix = ValSlider(self, (.2, 10), "A/Pix:", 2, 90)
        self.vbl.addWidget(self.sapix)

        self.svoltage = ValSlider(self, (0, 1000), "Voltage (kV):", 0, 90)
        self.vbl.addWidget(self.svoltage)

        self.scs = ValSlider(self, (0, 5), "Cs (mm):", 0, 90)
        self.vbl.addWidget(self.scs)

        self.ssamples = ValSlider(self, (32, 1024), "# Samples:", 0, 90)
        self.ssamples.setIntonly(True)
        self.vbl.addWidget(self.ssamples)

        self.hbl_buttons = QtGui.QHBoxLayout()
        self.newbut = QtGui.QPushButton("New")
        self.hbl_buttons.addWidget(self.newbut)
        self.vbl.addLayout(self.hbl_buttons)

        self.on_new_but()

        QtCore.QObject.connect(self.sdefocus, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.sbfactor, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.sdfdiff, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.sdfang, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.sapix, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.sampcont, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.svoltage, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.scs, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.ssamples, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.setlist,
                               QtCore.SIGNAL("currentRowChanged(int)"),
                               self.newSet)
        QtCore.QObject.connect(self.setlist, QtCore.SIGNAL("keypress"),
                               self.listkey)
        QtCore.QObject.connect(self.splotmode,
                               QtCore.SIGNAL("currentIndexChanged(int)"),
                               self.newPlotMode)

        QtCore.QObject.connect(self.newbut, QtCore.SIGNAL("clicked(bool)"),
                               self.on_new_but)

        self.resize(
            720, 380
        )  # figured these values out by printing the width and height in resize event

        E2loadappwin("e2ctfsim", "main", self)
        E2loadappwin("e2ctfsim", "image", self.guiim.qt_parent)
        #		E2loadappwin("e2ctf","realimage",self.guirealim.qt_parent)
        E2loadappwin("e2ctfsim", "plot", self.guiplot.qt_parent)

        self.setWindowTitle("CTF")
Exemplo n.º 12
0
    def __init__(self, application, data):
        """Implements the CTF fitting dialog using various EMImage and EMPlot2D widgets
		'data' is a list of (filename,ctf,im_1d,bg_1d,im_2d,bg_2d)
		"""
        try:
            from emimage2d import EMImage2DWidget
        except:
            print "Cannot import EMAN image GUI objects (EMImage2DWidget)"
            sys.exit(1)
        try:
            from emplot2d import EMPlot2DWidget
        except:
            print "Cannot import EMAN plot GUI objects (is matplotlib installed?)"
            sys.exit(1)

        self.app = weakref.ref(application)

        QtGui.QWidget.__init__(self, None)
        self.setWindowIcon(QtGui.QIcon(get_image_directory() + "ctf.png"))

        self.data = data
        self.curset = 0
        self.plotmode = 0

        self.guiim = EMImage2DWidget(application=self.app())
        self.guiplot = EMPlot2DWidget(application=self.app())

        self.guiim.connect(self.guiim, QtCore.SIGNAL("mousedown"),
                           self.imgmousedown)
        self.guiim.connect(self.guiim, QtCore.SIGNAL("mousedrag"),
                           self.imgmousedrag)
        self.guiim.connect(self.guiim, QtCore.SIGNAL("mouseup"),
                           self.imgmouseup)
        self.guiplot.connect(self.guiplot, QtCore.SIGNAL("mousedown"),
                             self.plotmousedown)

        self.guiim.mmode = "app"

        # This object is itself a widget we need to set up
        self.hbl = QtGui.QHBoxLayout(self)
        self.hbl.setMargin(0)
        self.hbl.setSpacing(6)
        self.hbl.setObjectName("hbl")

        # plot list and plot mode combobox
        self.vbl2 = QtGui.QVBoxLayout()
        self.setlist = QtGui.QListWidget(self)
        self.setlist.setSizePolicy(QtGui.QSizePolicy.Preferred,
                                   QtGui.QSizePolicy.Expanding)
        self.vbl2.addWidget(self.setlist)

        self.splotmode = QtGui.QComboBox(self)
        self.splotmode.addItem("Bgsub & fit")
        self.splotmode.addItem("Ptcl & BG power")
        self.splotmode.addItem("SNR")
        self.splotmode.addItem("Smoothed SNR")
        self.splotmode.addItem("Integrated SNR")
        self.splotmode.addItem("Total CTF")
        self.vbl2.addWidget(self.splotmode)
        self.hbl.addLayout(self.vbl2)

        # ValSliders for CTF parameters
        self.vbl = QtGui.QVBoxLayout()
        self.vbl.setMargin(0)
        self.vbl.setSpacing(6)
        self.vbl.setObjectName("vbl")
        self.hbl.addLayout(self.vbl)

        #self.samp = ValSlider(self,(0,5.0),"Amp:",0)
        #self.vbl.addWidget(self.samp)

        self.sdefocus = ValSlider(self, (0, 5), "Defocus:", 0, 90)
        self.vbl.addWidget(self.sdefocus)

        self.sbfactor = ValSlider(self, (0, 1600), "B factor:", 0, 90)
        self.vbl.addWidget(self.sbfactor)

        self.sampcont = ValSlider(self, (0, 100), "% AC", 0, 90)
        self.vbl.addWidget(self.sampcont)

        #		self.sapix=ValSlider(self,(.2,10),"A/Pix:",2,90)
        #		self.vbl.addWidget(self.sapix)

        self.svoltage = ValSlider(self, (0, 500), "Voltage (kV):", 0, 90)
        self.vbl.addWidget(self.svoltage)

        self.scs = ValSlider(self, (0, 5), "Cs (mm):", 0, 90)
        self.vbl.addWidget(self.scs)
        self.hbl_buttons = QtGui.QHBoxLayout()
        self.saveparms = QtGui.QPushButton("Save parms")
        self.recallparms = QtGui.QPushButton("Recall")
        self.output = QtGui.QPushButton("Output")
        self.hbl_buttons.addWidget(self.saveparms)
        self.hbl_buttons.addWidget(self.recallparms)
        self.hbl_buttons2 = QtGui.QHBoxLayout()
        self.hbl_buttons2.addWidget(self.output)
        self.vbl.addLayout(self.hbl_buttons)
        self.vbl.addLayout(self.hbl_buttons2)

        QtCore.QObject.connect(self.sdefocus, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.sbfactor, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        #		QtCore.QObject.connect(self.sapix, QtCore.SIGNAL("valueChanged"), self.newCTF)
        QtCore.QObject.connect(self.sampcont, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.svoltage, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.scs, QtCore.SIGNAL("valueChanged"),
                               self.newCTF)
        QtCore.QObject.connect(self.setlist,
                               QtCore.SIGNAL("currentRowChanged(int)"),
                               self.newSet)
        QtCore.QObject.connect(self.splotmode,
                               QtCore.SIGNAL("currentIndexChanged(int)"),
                               self.newPlotMode)

        QtCore.QObject.connect(self.saveparms, QtCore.SIGNAL("clicked(bool)"),
                               self.on_save_params)
        QtCore.QObject.connect(self.recallparms,
                               QtCore.SIGNAL("clicked(bool)"),
                               self.on_recall_params)
        QtCore.QObject.connect(self.output, QtCore.SIGNAL("clicked(bool)"),
                               self.on_output)

        self.update_data()

        self.update_data()
        self.resize(
            460, 380
        )  # figured these values out by printing the width and height in resize event
        self.setWindowTitle("CTF")
Exemplo n.º 13
0
    def __init__(self, app):
        self.app = app
        QtGui.QWidget.__init__(self, None)

        self.synthplot = EMPlot2DWidget(self.app)
        self.synthplot.show()

        # overall layout
        self.vbl1 = QtGui.QVBoxLayout()
        self.setLayout(self.vbl1)

        # First row contains general purpose controls
        self.hbl1 = QtGui.QHBoxLayout()
        self.vbl1.addLayout(self.hbl1)

        self.vcell = ValBox(self, (0, 128.0), "Cell:", 64)
        self.hbl1.addWidget(self.vcell)

        self.vncells = ValBox(self, (0, 128.0), "n Cells:", 1)
        self.hbl1.addWidget(self.vncells)

        self.voversamp = ValBox(self, (0, 128.0), "Oversample:", 1)
        self.hbl1.addWidget(self.voversamp)

        self.targfn = None

        self.vnsin = ValBox(self, (1, 64), "# Sin:", 16)
        self.vnsin.intonly = 1
        self.hbl1.addWidget(self.vnsin)

        self.cbshowall = QtGui.QCheckBox("Show All")
        self.hbl1.addWidget(self.cbshowall)

        self.cbshifted = QtGui.QCheckBox("Shifted")
        self.hbl1.addWidget(self.cbshifted)

        self.cbtargfn = QtGui.QComboBox(self)
        self.cbtargfn.addItem("None")
        self.cbtargfn.addItem("triangle")
        self.cbtargfn.addItem("square")
        self.cbtargfn.addItem("square imp")
        self.cbtargfn.addItem("delta")
        self.cbtargfn.addItem("noise")
        self.cbtargfn.addItem("saw")
        self.cbtargfn.addItem("sin")
        self.cbtargfn.addItem("modsin")
        self.cbtargfn.addItem("modsin2")
        self.cbtargfn.addItem("modsin3")
        self.cbtargfn.addItem("sin low")
        self.cbtargfn.addItem("doubledelta")
        self.cbtargfn.addItem("sin bad f")
        self.cbtargfn.addItem("sin bad f2")
        self.hbl1.addWidget(self.cbtargfn)

        # Widget containing valsliders
        self.wapsliders = QtGui.QWidget(self)
        #		self.wapsliders.setMinimumSize(800,640)
        self.gblap = QtGui.QGridLayout()
        self.gblap.setSizeConstraint(QtGui.QLayout.SetMinAndMaxSize)
        self.gblap.setColumnMinimumWidth(0, 250)
        self.gblap.setColumnMinimumWidth(1, 250)
        self.wapsliders.setLayout(self.gblap)

        # ScrollArea providing view on slider container widget
        self.wapsarea = QtGui.QScrollArea(self)
        self.wapsarea.setWidgetResizable(True)
        self.wapsarea.setWidget(self.wapsliders)
        self.vbl1.addWidget(self.wapsarea)

        QtCore.QObject.connect(self.vcell, QtCore.SIGNAL("valueChanged"),
                               self.recompute)
        QtCore.QObject.connect(self.vncells, QtCore.SIGNAL("valueChanged"),
                               self.recompute)
        QtCore.QObject.connect(self.voversamp, QtCore.SIGNAL("valueChanged"),
                               self.recompute)
        QtCore.QObject.connect(self.vnsin, QtCore.SIGNAL("valueChanged"),
                               self.nsinchange)
        QtCore.QObject.connect(self.cbshowall,
                               QtCore.SIGNAL("stateChanged(int)"),
                               self.recompute)
        QtCore.QObject.connect(self.cbshifted,
                               QtCore.SIGNAL("stateChanged(int)"),
                               self.recompute)
        QtCore.QObject.connect(self.cbtargfn, QtCore.SIGNAL("activated(int)"),
                               self.newtargfn)

        self.wamp = []
        self.wpha = []
        self.curves = []
        self.xvals = []
        for i in range(65):
            self.wamp.append(ValSlider(self, (0.0, 1.0), "%2d:" % i, 0.0))
            self.gblap.addWidget(self.wamp[-1], i, 0)
            QtCore.QObject.connect(self.wamp[-1],
                                   QtCore.SIGNAL("valueChanged"),
                                   self.recompute)

            self.wpha.append(ValSlider(self, (-180.0, 180.0), "%2d:" % i, 0.0))
            self.gblap.addWidget(self.wpha[-1], i, 1)
            QtCore.QObject.connect(self.wpha[-1],
                                   QtCore.SIGNAL("valueChanged"),
                                   self.recompute)

            self.curves.append(EMData(64, 1))

            if self.cbshowall.isChecked():
                self.synthplot
        self.total = EMData(64, 1)

        self.nsinchange()
Exemplo n.º 14
0
    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
Exemplo n.º 15
0
    def __init__(self,
                 app,
                 maxshift,
                 invert=False,
                 seqali=False,
                 tiltstep=2.0):
        self.app = app
        self.maxshift = maxshift
        self.seqali = seqali
        self.invert = invert
        self.tiltstep = tiltstep

        # the control panel
        QtGui.QWidget.__init__(self, None)

        self.gbl = QtGui.QGridLayout(self)
        self.gbl.setMargin(0)
        self.gbl.setSpacing(6)
        self.gbl.setObjectName("hbl")

        # action buttons
        self.bcenalign = QtGui.QPushButton("Center Align")
        self.bprojalign = QtGui.QPushButton("Proj. Realign")
        self.btiltaxis = QtGui.QPushButton("Tilt Axis")
        self.btiltaxisval = QtGui.QLineEdit("90.0")
        self.bsavedata = QtGui.QPushButton("Save Data")
        self.breconst = QtGui.QPushButton("3D Normal")
        self.sbmode = QtGui.QSpinBox(self)
        self.sbmode.setRange(0, 2)
        self.sbmode.setValue(0)
        self.bmagict = QtGui.QPushButton("3D Tomofill")
        self.bmagics = QtGui.QPushButton("3D Sph")
        self.bmagicc = QtGui.QPushButton("3D Cyl")
        self.vslpfilt = ValSlider(self, (0, .5), "Filter", 0.5, 50)

        self.gbl.addWidget(self.bcenalign, 0, 0)
        self.gbl.addWidget(self.bprojalign, 0, 1)
        self.gbl.addWidget(self.btiltaxis, 0, 2)
        self.gbl.addWidget(self.btiltaxisval, 0, 3)
        #		self.gbl.addWidget(self.bsavedata,0,3)
        self.gbl.addWidget(self.breconst, 1, 0)
        self.gbl.addWidget(self.sbmode, 2, 0, 1, 1)
        self.gbl.addWidget(self.vslpfilt, 3, 0, 1, 4)
        self.gbl.addWidget(self.bmagict, 1, 1)
        self.gbl.addWidget(self.bmagics, 1, 2)
        self.gbl.addWidget(self.bmagicc, 1, 3)

        QtCore.QObject.connect(self.bcenalign, QtCore.SIGNAL("clicked(bool)"),
                               self.do_cenalign)
        QtCore.QObject.connect(self.bprojalign, QtCore.SIGNAL("clicked(bool)"),
                               self.do_projalign)
        QtCore.QObject.connect(self.btiltaxis, QtCore.SIGNAL("clicked(bool)"),
                               self.do_tiltaxis)
        QtCore.QObject.connect(self.bsavedata, QtCore.SIGNAL("clicked(bool)"),
                               self.do_savedata)
        QtCore.QObject.connect(self.breconst, QtCore.SIGNAL("clicked(bool)"),
                               self.do_reconst)
        QtCore.QObject.connect(self.bmagict, QtCore.SIGNAL("clicked(bool)"),
                               self.do_magict)
        QtCore.QObject.connect(self.bmagics, QtCore.SIGNAL("clicked(bool)"),
                               self.do_magics)
        QtCore.QObject.connect(self.bmagicc, QtCore.SIGNAL("clicked(bool)"),
                               self.do_magicc)
        QtCore.QObject.connect(self.vslpfilt, QtCore.SIGNAL("valueChanged"),
                               self.do_filter)

        # the single image display widget
        self.im2d = EMImage2DWidget(application=app, winid="tomotrackbox.big")
        self.imboxed = EMImage2DWidget(application=app,
                                       winid="tomotrackbox.small")
        self.improj = EMImage2DWidget(application=app,
                                      winid="tomotrackbox.proj")
        self.imslice = EMImage2DWidget(application=app,
                                       winid="tomotrackbox.3dslice")
        self.imvol = EMImage3DModule(application=app, winid="tomotrackbox.3d")

        # get some signals from the window.
        QtCore.QObject.connect(self.im2d, QtCore.SIGNAL("mousedown"),
                               self.down)
        QtCore.QObject.connect(self.im2d, QtCore.SIGNAL("mousedrag"),
                               self.drag)
        QtCore.QObject.connect(self.im2d, QtCore.SIGNAL("mouseup"), self.up)
        QtCore.QObject.connect(self.im2d, QtCore.SIGNAL("increment_list_data"),
                               self.change_tilt)

        self.imagefile = None
        self.imageparm = None
        self.tiltshapes = None
        self.curtilt = 0
        self.oldtilt = self.curtilt
        self.map3d = None
        self.downloc = None
        self.downadjloc = None

        self.show()
        self.im2d.show()
Exemplo n.º 16
0
    def __init__(self, target, parent):
        self.target = weakref.ref(target)
        self.parent = weakref.ref(parent)

        self.label_src = QtGui.QLabel(parent)
        self.label_src.setText('Rotation Convention')

        self.src = QtGui.QComboBox(parent)
        self.load_src_options(self.src)

        self.x_label = QtGui.QLabel()
        self.x_label.setText('x')

        self.x_trans = QtGui.QDoubleSpinBox(parent)
        self.x_trans.setMinimum(-10000)
        self.x_trans.setMaximum(10000)
        self.x_trans.setValue(0.0)

        self.y_label = QtGui.QLabel()
        self.y_label.setText('y')

        self.y_trans = QtGui.QDoubleSpinBox(parent)
        self.y_trans.setMinimum(-10000)
        self.y_trans.setMaximum(10000)
        self.y_trans.setValue(0.0)

        self.z_label = QtGui.QLabel()
        self.z_label.setText('z')

        self.z_trans = QtGui.QDoubleSpinBox(parent)
        self.z_trans.setMinimum(-10000)
        self.z_trans.setMaximum(10000)
        self.z_trans.setValue(0.0)

        self.az = ValSlider(parent, (-360.0, 360.0), "az", -1)
        self.az.setObjectName("az")
        self.az.setValue(0.0)

        self.alt = ValSlider(parent, (-180.0, 180.0), "alt", -1)
        self.alt.setObjectName("alt")
        self.alt.setValue(0.0)

        self.phi = ValSlider(parent, (-360.0, 360.0), "phi", -1)
        self.phi.setObjectName("phi")
        self.phi.setValue(0.0)

        self.scale = ValSlider(parent, (0.01, 30.0), "Zoom:")
        self.scale.setObjectName("scale")
        self.scale.setValue(1.0)

        self.n3_showing = False

        self.current_src = "eman"

        QtCore.QObject.connect(self.az, QtCore.SIGNAL("valueChanged"),
                               self.slider_rotate)
        QtCore.QObject.connect(self.alt, QtCore.SIGNAL("valueChanged"),
                               self.slider_rotate)
        QtCore.QObject.connect(self.phi, QtCore.SIGNAL("valueChanged"),
                               self.slider_rotate)
        QtCore.QObject.connect(self.src,
                               QtCore.SIGNAL("currentIndexChanged(QString)"),
                               self.set_src)
        QtCore.QObject.connect(self.scale, QtCore.SIGNAL("valueChanged"),
                               self.target().set_scale)
        QtCore.QObject.connect(self.x_trans,
                               QtCore.SIGNAL("valueChanged(double)"),
                               self.target().set_cam_x)
        QtCore.QObject.connect(self.y_trans,
                               QtCore.SIGNAL("valueChanged(double)"),
                               self.target().set_cam_y)
        QtCore.QObject.connect(self.z_trans,
                               QtCore.SIGNAL("valueChanged(double)"),
                               self.target().set_cam_z)
Exemplo n.º 17
0
    def addRotationWidgets(self):
        """ Add alll the widgets for the various EMAN2 rotation conventions """
        EMANwidget = QtGui.QWidget()
        Imagicwidget = QtGui.QWidget()
        Spiderwidget = QtGui.QWidget()
        MRCwidget = QtGui.QWidget()
        XYZwidget = QtGui.QWidget()
        spinwidget = QtGui.QWidget()
        sgirotwidget = QtGui.QWidget()
        quaternionwidget = QtGui.QWidget()
        # EMAN
        emanbox = QtGui.QVBoxLayout()
        self.emanazslider = ValSlider(EMANwidget, (0.0, 360.0),
                                      "  Az",
                                      rounding=1)
        self.emanaltslider = ValSlider(EMANwidget, (0.0, 180.0),
                                       "Alt",
                                       rounding=1)
        self.emanphislider = ValSlider(EMANwidget, (0.0, 360.0),
                                       "Phi",
                                       rounding=1)
        emanbox.addWidget(self.emanazslider)
        emanbox.addWidget(self.emanaltslider)
        emanbox.addWidget(self.emanphislider)
        EMANwidget.setLayout(emanbox)
        # Imagic
        imagicbox = QtGui.QVBoxLayout()
        self.imagicgammaslider = ValSlider(Imagicwidget, (0.0, 360.0),
                                           "Gamma",
                                           rounding=1)
        self.imagicbetaslider = ValSlider(Imagicwidget, (0.0, 180.0),
                                          "     Beta",
                                          rounding=1)
        self.imagicalphaslider = ValSlider(Imagicwidget, (0.0, 360.0),
                                           "   Alpha",
                                           rounding=1)
        imagicbox.addWidget(self.imagicgammaslider)
        imagicbox.addWidget(self.imagicbetaslider)
        imagicbox.addWidget(self.imagicalphaslider)
        Imagicwidget.setLayout(imagicbox)
        # Spider
        spiderbox = QtGui.QVBoxLayout()
        self.spiderpsislider = ValSlider(Spiderwidget, (0.0, 360.0),
                                         "   Psi",
                                         rounding=1)
        self.spiderthetaslider = ValSlider(Spiderwidget, (0.0, 180.0),
                                           "Theta",
                                           rounding=1)
        self.spiderphislider = ValSlider(Spiderwidget, (0.0, 360.0),
                                         "   Phi",
                                         rounding=1)
        spiderbox.addWidget(self.spiderpsislider)
        spiderbox.addWidget(self.spiderthetaslider)
        spiderbox.addWidget(self.spiderphislider)
        Spiderwidget.setLayout(spiderbox)
        # MRC
        mrcbox = QtGui.QVBoxLayout()
        self.mrcpsislider = ValSlider(MRCwidget, (0.0, 360.0),
                                      "      Psi",
                                      rounding=1)
        self.mrcthetaslider = ValSlider(MRCwidget, (0.0, 180.0),
                                        "  Theta",
                                        rounding=1)
        self.mrcomegaslider = ValSlider(MRCwidget, (0.0, 360.0),
                                        "Omega",
                                        rounding=1)
        mrcbox.addWidget(self.mrcpsislider)
        mrcbox.addWidget(self.mrcthetaslider)
        mrcbox.addWidget(self.mrcomegaslider)
        MRCwidget.setLayout(mrcbox)
        # XYZ
        xyzbox = QtGui.QVBoxLayout()
        self.xyzzslider = ValSlider(XYZwidget, (0.0, 360.0), "Z", rounding=1)
        self.xyzyslider = ValSlider(XYZwidget, (0.0, 180.0), "Y", rounding=1)
        self.xyzxslider = ValSlider(XYZwidget, (0.0, 360.0), "X", rounding=1)
        xyzbox.addWidget(self.xyzzslider)
        xyzbox.addWidget(self.xyzyslider)
        xyzbox.addWidget(self.xyzxslider)
        XYZwidget.setLayout(xyzbox)
        # spin
        spinbox = QtGui.QVBoxLayout()
        self.spinomegaslider = ValSlider(spinwidget, (0.0, 180.0),
                                         "Omega",
                                         rounding=1)
        self.spinn1slider = ValSlider(spinwidget, (0.0, 1.0),
                                      "       N1",
                                      rounding=4)
        self.spinn2slider = ValSlider(spinwidget, (0.0, 1.0),
                                      "       N2",
                                      rounding=4)
        self.spinn3slider = ValSlider(spinwidget, (0.0, 1.0),
                                      "       N3",
                                      rounding=4)
        spinbox.addWidget(self.spinomegaslider)
        spinbox.addWidget(self.spinn1slider)
        spinbox.addWidget(self.spinn2slider)
        spinbox.addWidget(self.spinn3slider)
        spinwidget.setLayout(spinbox)
        # sgirot
        sgirotbox = QtGui.QVBoxLayout()
        self.sgirotqslider = ValSlider(sgirotwidget, (0.0, 180.0),
                                       " Q",
                                       rounding=1)
        self.sgirotn1slider = ValSlider(sgirotwidget, (0.0, 1.0),
                                        "N1",
                                        rounding=4)
        self.sgirotn2slider = ValSlider(sgirotwidget, (0.0, 1.0),
                                        "N2",
                                        rounding=4)
        self.sgirotn3slider = ValSlider(sgirotwidget, (0.0, 1.0),
                                        "N3",
                                        rounding=4)
        sgirotbox.addWidget(self.sgirotqslider)
        sgirotbox.addWidget(self.sgirotn1slider)
        sgirotbox.addWidget(self.sgirotn2slider)
        sgirotbox.addWidget(self.sgirotn3slider)
        sgirotwidget.setLayout(sgirotbox)
        # quaternion
        quaternionbox = QtGui.QVBoxLayout()
        self.quaternione0slider = ValSlider(quaternionwidget, (0.0, 1.0),
                                            "E0",
                                            rounding=4)
        self.quaternione1slider = ValSlider(quaternionwidget, (0.0, 1.0),
                                            "E1",
                                            rounding=4)
        self.quaternione2slider = ValSlider(quaternionwidget, (0.0, 1.0),
                                            "E2",
                                            rounding=4)
        self.quaternione3slider = ValSlider(quaternionwidget, (0.0, 1.0),
                                            "E3",
                                            rounding=4)
        quaternionbox.addWidget(self.quaternione0slider)
        quaternionbox.addWidget(self.quaternione1slider)
        quaternionbox.addWidget(self.quaternione2slider)
        quaternionbox.addWidget(self.quaternione3slider)
        quaternionwidget.setLayout(quaternionbox)
        # Add widgets to the stack
        self.rotstackedwidget.addWidget(EMANwidget)
        self.rotstackedwidget.addWidget(Imagicwidget)
        self.rotstackedwidget.addWidget(Spiderwidget)
        self.rotstackedwidget.addWidget(MRCwidget)
        self.rotstackedwidget.addWidget(XYZwidget)
        self.rotstackedwidget.addWidget(spinwidget)
        self.rotstackedwidget.addWidget(sgirotwidget)
        self.rotstackedwidget.addWidget(quaternionwidget)
        # add choices to combobox
        self.rotcombobox.addItem("EMAN")
        self.rotcombobox.addItem("Imagic")
        self.rotcombobox.addItem("Spider")
        self.rotcombobox.addItem("MRC")
        self.rotcombobox.addItem("XYZ")
        self.rotcombobox.addItem("spin")
        self.rotcombobox.addItem("sgirot")
        self.rotcombobox.addItem("quaternion")

        # Signal for all sliders
        QtCore.QObject.connect(self.rotcombobox,
                               QtCore.SIGNAL("activated(int)"),
                               self._rotcombobox_changed)
        QtCore.QObject.connect(self.emanazslider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_EMAN_rotation)
        QtCore.QObject.connect(self.emanaltslider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_EMAN_rotation)
        QtCore.QObject.connect(self.emanphislider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_EMAN_rotation)
        QtCore.QObject.connect(self.imagicgammaslider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_Imagic_rotation)
        QtCore.QObject.connect(self.imagicbetaslider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_Imagic_rotation)
        QtCore.QObject.connect(self.imagicalphaslider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_Imagic_rotation)
        QtCore.QObject.connect(self.spiderpsislider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_Spider_rotation)
        QtCore.QObject.connect(self.spiderthetaslider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_Spider_rotation)
        QtCore.QObject.connect(self.spiderphislider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_Spider_rotation)
        QtCore.QObject.connect(self.mrcpsislider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_MRC_rotation)
        QtCore.QObject.connect(self.mrcthetaslider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_MRC_rotation)
        QtCore.QObject.connect(self.mrcomegaslider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_MRC_rotation)
        QtCore.QObject.connect(self.xyzzslider, QtCore.SIGNAL("valueChanged"),
                               self._on_XYZ_rotation)
        QtCore.QObject.connect(self.xyzyslider, QtCore.SIGNAL("valueChanged"),
                               self._on_XYZ_rotation)
        QtCore.QObject.connect(self.xyzxslider, QtCore.SIGNAL("valueChanged"),
                               self._on_XYZ_rotation)
        QtCore.QObject.connect(self.spinomegaslider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_spin_rotation)
        QtCore.QObject.connect(self.spinn1slider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_spin_rotation)
        QtCore.QObject.connect(self.spinn2slider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_spin_rotation)
        QtCore.QObject.connect(self.spinn3slider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_spin_rotation)
        QtCore.QObject.connect(self.sgirotqslider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_sgirot_rotation)
        QtCore.QObject.connect(self.sgirotn1slider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_sgirot_rotation)
        QtCore.QObject.connect(self.sgirotn2slider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_sgirot_rotation)
        QtCore.QObject.connect(self.sgirotn3slider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_sgirot_rotation)
        QtCore.QObject.connect(self.quaternione0slider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_quaternion_rotation)
        QtCore.QObject.connect(self.quaternione1slider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_quaternion_rotation)
        QtCore.QObject.connect(self.quaternione2slider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_quaternion_rotation)
        QtCore.QObject.connect(self.quaternione3slider,
                               QtCore.SIGNAL("valueChanged"),
                               self._on_quaternion_rotation)
Exemplo n.º 18
0
	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.scale = ValSlider(maintab,(0.01,30.0),"Zoom:")
			self.scale.setObjectName("scale")
			self.scale.setValue(1.0)
			maintab.vbl.addWidget(self.scale)
			
			self.hbl_color = QtGui.QHBoxLayout()
			self.hbl_color.setMargin(0)
			self.hbl_color.setSpacing(6)
			self.hbl_color.setObjectName("Material")
			maintab.vbl.addLayout(self.hbl_color)
			
			self.color_label = QtGui.QLabel()
			self.color_label.setText('Material')
			self.hbl_color.addWidget(self.color_label)
			
			self.cbb = QtGui.QComboBox(maintab)
			self.hbl_color.addWidget(self.cbb)
	
			self.hbl_trans = QtGui.QHBoxLayout()
			self.hbl_trans.setMargin(0)
			self.hbl_trans.setSpacing(6)
			self.hbl_trans.setObjectName("Trans")
			maintab.vbl.addLayout(self.hbl_trans)
			
			self.x_label = QtGui.QLabel()
			self.x_label.setText('x')
			self.hbl_trans.addWidget(self.x_label)
			
			self.x_trans = QtGui.QDoubleSpinBox(self)
			self.x_trans.setMinimum(-10000)
			self.x_trans.setMaximum(10000)
			self.x_trans.setValue(0.0)
			self.hbl_trans.addWidget(self.x_trans)
			
			self.y_label = QtGui.QLabel()
			self.y_label.setText('y')
			self.hbl_trans.addWidget(self.y_label)
			
			self.y_trans = QtGui.QDoubleSpinBox(maintab)
			self.y_trans.setMinimum(-10000)
			self.y_trans.setMaximum(10000)
			self.y_trans.setValue(0.0)
			self.hbl_trans.addWidget(self.y_trans)
			
			
			self.z_label = QtGui.QLabel()
			self.z_label.setText('z')
			self.hbl_trans.addWidget(self.z_label)
			
			self.z_trans = QtGui.QDoubleSpinBox(maintab)
			self.z_trans.setMinimum(-10000)
			self.z_trans.setMaximum(10000)
			self.z_trans.setValue(0.0)
			self.hbl_trans.addWidget(self.z_trans)
			
			self.hbl_src = QtGui.QHBoxLayout()
			self.hbl_src.setMargin(0)
			self.hbl_src.setSpacing(6)
			self.hbl_src.setObjectName("hbl")
			maintab.vbl.addLayout(self.hbl_src)
			
			self.label_src = QtGui.QLabel()
			self.label_src.setText('Rotation Convention')
			self.hbl_src.addWidget(self.label_src)
			
			self.src = QtGui.QComboBox(maintab)
			self.load_src_options(self.src)
			self.hbl_src.addWidget(self.src)
			
			# set default value -1 ensures that the val slider is updated the first time it is created
			self.az = ValSlider(self,(-360.0,360.0),"az",-1)
			self.az.setObjectName("az")
			maintab.vbl.addWidget(self.az)
			
			self.alt = ValSlider(self,(-180.0,180.0),"alt",-1)
			self.alt.setObjectName("alt")
			maintab.vbl.addWidget(self.alt)
			
			self.phi = ValSlider(self,(-360.0,360.0),"phi",-1)
			self.phi.setObjectName("phi")
			maintab.vbl.addWidget(self.phi)
		
			self.current_src = EULER_EMAN
		
		return self.maintab