Пример #1
0
    def create_dock_windows(self):

        self.dock_view_list = ViewList()
        self.dock_view_list.select_item_index.connect(self.select_item_change)
        # self.view_dock_widget.setWidget(self.view_list)
        self.addDockWidget(Qt.RightDockWidgetArea, self.dock_view_list)

        self.dock_slice_info = InfoWidget()
        self.addDockWidget(Qt.LeftDockWidgetArea, self.dock_slice_info)
        self.dock_slice_info.setMinimumWidth(self.width * 0.5)
        self.dock_slice_info.setMinimumHeight(self.height * 0.4)

        self.dock_slice_tif = TifWidget()
        self.addDockWidget(Qt.LeftDockWidgetArea, self.dock_slice_tif)
        self.dock_slice_tif.setMinimumWidth(self.width * 0.5)
        self.dock_slice_tif.setFixedHeight(self.height * 0.5)

        self.dock_debug_info = DebugInfo()
        self.addDockWidget(Qt.LeftDockWidgetArea, self.dock_debug_info)
        self.dock_debug_info.setMinimumWidth(self.width * 0.5)
        self.dock_debug_info.setFixedHeight(self.height * 0.4)

        self.dock_debug_info.set_text_browser('')
        version_file = QFile("Version.txt")
        version_file.open(QIODevice.ReadOnly)
        ver_info = str(version_file.readAll(), encoding='utf-8')
        version_file.close()
        self.dock_debug_info.set_head_info(ver_info)
Пример #2
0
    def initComponent(self):
        self.drawPanel = GLWidget(self)
        self.infoPanel = InfoWidget(self)
        self.controlPanel = ControlWidget(self)
        self.splitterPanel = SplitWidget(self)

        self.globalPanel = mylable(self)

        controlLayout = QVBoxLayout()
        controlLayout.addWidget(self.infoPanel)
        controlLayout.addWidget(self.controlPanel)
        # controlLayout.addWidget(self.globalPanel)
        controlLayout.addWidget(self.splitterPanel)

        subLayout = QVBoxLayout()
        subLayout.addWidget(self.globalPanel)
        

        mainLayout = QHBoxLayout()
        mainLayout.addWidget(self.drawPanel)
        
        mainLayout.addLayout(controlLayout)
        mainLayout.addWidget(self.globalPanel)
        
        
        
        mainWidget = QWidget()
        mainWidget.setLayout(mainLayout)
        # mainWidget.setLayout(subLayout)

        return mainWidget
Пример #3
0
   def __init__(self, obsdate, imdir, prodir, server='smtp.saao.ac.za', readme='readme.fast.template',  \
                sdbhost='sdb.salt', sdbname='sdb', sdbuser='', \
                password='', hmin=350,  wmin=400, cmap='gray', \
                sexfile='/home/ccd/tools/qred.sex', update=True,
                scale='zscale', contrast=0.1, imreduce=True, clobber=False, log=None, verbose=True):

        #set up the variables
        self.obsdate=obsdate
        self.imdir=imdir
        self.prodir=prodir
        self.imreduce=imreduce
        self.clobber=clobber
        self.scamwatch=True
        self.rsswatch=True
        self.hrswatch=True 
        self.hrbwatch=True
        self.objsection=None
        self.sdbhost=sdbhost
        self.sdbname=sdbname
        self.sdbuser=sdbuser
        self.password=password
        self.server=server
        self.readme=readme
        self.sexfile=sexfile
        self.update=update
        self.headfiles=[]
        self.pickle_file='%s_obslog.p' % self.obsdate

        # Setup widget
        QtGui.QMainWindow.__init__(self)

        # Set main widget
        self.main = QtGui.QWidget(self)

        # Set window title
        self.setWindowTitle("SALTFIRST")

        #set up observation log from database
        self.create_obslog()

        #look for any initial data
        self.checkfordata(self.obsdate, self.imdir)

        #example data
        #image='../salt/scam/data/2006/1016/raw/S200610160009.fits'
        #self.hdu=saltio.openfits(image)
        #name=getbasename(self.hdu)
        #imlist=getimagedetails(self.hdu)
        #obsdict={}
        #obsdict[name]=imlist

        #set up each of the tabs
        if len(self.obsdict)>0:
           name=self.obsdict.order()[-1]
           imlist=self.obsdict[name]
        else:
           name=''
           imlist=[]
           self.hdu=None
        self.infoTab=InfoWidget(name, imlist)
        self.dqTab=DQWidget(name, imlist)
        #self.imageTab=ImageWidget(self.hdu, hmin=hmin, wmin=wmin, cmap=cmap, scale=scale, contrast=contrast)
        self.specTab=SpectraViewWidget(None, None, None, hmin=hmin, wmin=wmin)
        self.obsTab=ObsLogWidget(self.obsdict, obsdate=self.obsdate)
        #create the tabs
        self.tabWidget=QtGui.QTabWidget()
        self.tabWidget.addTab(self.infoTab, 'Info')
        self.tabWidget.addTab(self.dqTab, 'DQ')
        #self.tabWidget.addTab(self.imageTab, 'Image')
        self.tabWidget.addTab(self.specTab, 'Spectra')
        self.tabWidget.addTab(self.obsTab, 'Log')
        #create button to reset the filewatcher
        self.checkButton = QtGui.QPushButton("Check for Data")
        self.checkButton.clicked.connect(self.clickfordata)
     
        #layout the widgets
        mainLayout = QtGui.QVBoxLayout(self.main)
        mainLayout.addWidget(self.tabWidget)
        mainLayout.addWidget(self.checkButton)
        #set up thrading
        self.threadlist=[]
        self.thread=QtCore.QThread()
        self.nothread=False

        #add the file watching capability
        self.addwatcher()

        #add a timer to check on data and update obslog in database
        self.ctimer=QtCore.QTimer()
        ctime=5*60*1000
        self.ctimer.start(ctime)
        self.connect(self.ctimer, QtCore.SIGNAL("timeout()"), self.updatetime)
        #add signal catches
        self.connect(self, QtCore.SIGNAL('updatespec(QString)'), self.updatespecview)
        self.connect(self.thread, QtCore.SIGNAL('finishedthread(QString)'), self.updatetabs)
        self.connect(self.obsTab, QtCore.SIGNAL('cellclicked(QString)'), self.updatetabs)
        self.connect(self.obsTab, QtCore.SIGNAL('updateobslogdb(QString)'), self.updateobslogdb)
        self.connect(self.obsTab, QtCore.SIGNAL('updatecals(QString)'), self.updatecals)
        self.connect(self.specTab, QtCore.SIGNAL('updateextract(int,int)'), self.updateextract)
        # Set the main widget as the central widget
        self.setCentralWidget(self.main)

        # Destroy widget on close
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)