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)
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
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)