def makelisting(self): table = self.treeview table.clearContents() row = 0 table.setRowCount(len(self.jumpinfo)) table.setSortingEnabled(True) for bnch in self.jumpinfo: item1 = QtGui.QTableWidgetItem(bnch.name) icon = self.file_icon(bnch) item1.setIcon(icon) item1.setFlags(item1.flags() & ~QtCore.Qt.ItemIsEditable) item2 = QtGui.QTableWidgetItem(str(bnch.st_size)) item2.setFlags(item2.flags() & ~QtCore.Qt.ItemIsEditable) item3 = QtGui.QTableWidgetItem(oct(bnch.st_mode)) item3.setFlags(item2.flags() & ~QtCore.Qt.ItemIsEditable) item4 = QtGui.QTableWidgetItem(time.ctime(bnch.st_mtime)) item4.setFlags(item2.flags() & ~QtCore.Qt.ItemIsEditable) table.setItem(row, 0, item1) table.setItem(row, 1, item2) table.setItem(row, 2, item3) table.setItem(row, 3, item4) row += 1 #table.setSortingEnabled(True) table.resizeColumnsToContents()
def view_database(self, selected_entries=None): ''' Logic for creating and viewing of a tab with the database table ''' print "Viewing" table_headers = [ 'id', 'File', 'Observation Time Start', 'Observation Time End', 'Instrument', 'Min Wavelength', 'Max Wavelength', 'Starred' ] self.table_headers = table_headers vbox = QtHelp.VBox() filter_label = QtGui.QLabel("Filter") self.filter_label = filter_label filter_select = QtGui.QComboBox() search_box = QtGui.QLineEdit() search_box.textChanged.connect(self.query) self.search_box = search_box if selected_entries == None: selected_entries = database queries = self.get_data_from_selected_entries(selected_entries) wtable = QtGui.QTableWidget(len(queries), len(table_headers)) for i, row in enumerate(queries): for j, col in enumerate(row): item = QtGui.QTableWidgetItem(str(col)) wtable.setItem(i, j, item) wtable.itemClicked.connect(self.on_table_row_click) wtable.setHorizontalHeaderLabels(table_headers) wtable.horizontalHeader().setResizeMode( QtGui.QHeaderView.ResizeToContents) self.wtable = wtable if 'sunpydb' in self.fv.ds.get_tabnames(): self.fv.ds.remove_tab("sunpydb") filter_select.addItems(self.table_headers[:-1]) self.filter_select = filter_select vbox.addWidget(filter_label, stretch=0) vbox.addWidget(filter_select, stretch=0) vbox.addWidget(search_box) vbox.addWidget(wtable, stretch=0) starred_entries_box = QtGui.QCheckBox("Show starred entries only") self.starred_entries_box = starred_entries_box starred_entries_box.stateChanged.connect(self.starred_entries_only) vbox.addWidget(starred_entries_box) self.fv.ds.add_tab("right", vbox, 1, "SunPyDB", tabname="sunpydb") self.fv.ds.raise_tab("sunpydb")
def build_gui(self, container): widget = QtGui.QWidget() vbox = QtGui.QVBoxLayout() vbox.setContentsMargins(2, 2, 2, 2) widget.setLayout(vbox) # create the table #table = QtGui.QTableWidget() #table.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) #table.setDragEnabled(True) table = DragTable(plugin=self) table.setShowGrid(False) table.verticalHeader().hide() table.setColumnCount(len(self.columns)) col = 0 for hdr, kwd in self.columns: item = QtGui.QTableWidgetItem(hdr) table.setHorizontalHeaderItem(col, item) col += 1 vbox.addWidget(table, stretch=1) table.itemDoubleClicked.connect(self.itemclicked_cb) self.treeview = table self.entry = QtGui.QLineEdit() vbox.addWidget(self.entry, stretch=0, alignment=QtCore.Qt.AlignTop) self.entry.returnPressed.connect(self.browse_cb) hbox = QtHelp.HBox() btn = QtGui.QPushButton("Load") btn.clicked.connect(lambda w: self.load_cb()) hbox.addWidget(btn, stretch=0) btn = QtGui.QPushButton("Save Image As") hbox.addWidget(btn, stretch=0) self.entry2 = QtGui.QLineEdit() hbox.addWidget(self.entry2, stretch=1) vbox.addWidget(hbox, stretch=0, alignment=QtCore.Qt.AlignTop) self.entry2.returnPressed.connect(self.save_as_cb) btn.clicked.connect(lambda w: self.save_as_cb()) btns = QtHelp.HBox() layout = btns.layout() layout.setSpacing(3) btn = QtGui.QPushButton("Close") btn.clicked.connect(self.close) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) btn = QtGui.QPushButton("Refresh") btn.clicked.connect(self.refresh) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) btn = QtGui.QPushButton("Make Thumbs") btn.clicked.connect(self.make_thumbs) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) vbox.addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignLeft) cw = container.get_widget() cw.addWidget(widget, stretch=1)
def set_header(self, table, image): header = image.get_header() # Update the header info table.clearContents() keyorder = image.get('keyorder', header.keys()) row = 0 table.setRowCount(len(keyorder)) table.setSortingEnabled(False) for key in keyorder: if header.has_key(key): val = str(header[key]) bnch = Bunch.Bunch(kwd=key, value=val, comment='') item1 = QtGui.QTableWidgetItem(key) item1.setFlags(item1.flags() & ~QtCore.Qt.ItemIsEditable) item2 = QtGui.QTableWidgetItem(val) item2.setFlags(item2.flags() & ~QtCore.Qt.ItemIsEditable) table.setItem(row, 0, item1) table.setItem(row, 1, item2) row += 1 table.setSortingEnabled(True)
def database_table_repaint(self, entries): ''' Repaints of the database table based on the filter entered ''' self.wtable.clearContents() queries = self.get_data_from_selected_entries(entries) for i, row in enumerate(queries): for j, col in enumerate(row): item = QtGui.QTableWidgetItem(str(col)) self.wtable.setItem(i, j, item) self.wtable.itemClicked.connect(self.on_table_row_click)
def _create_header_window(self): widget = QtGui.QWidget() vbox = QtGui.QVBoxLayout() vbox.setContentsMargins(2, 2, 2, 2) widget.setLayout(vbox) table = QtGui.QTableWidget() table.setColumnCount(len(self.columns)) col = 0 for hdr, kwd in self.columns: item = QtGui.QTableWidgetItem(hdr) table.setHorizontalHeaderItem(col, item) col += 1 vbox.addWidget(table, stretch=1) return widget, table
def build_gui(self, container): widget = QtGui.QWidget() vbox = QtGui.QVBoxLayout() vbox.setContentsMargins(2, 2, 2, 2) widget.setLayout(vbox) # create the table table = QtGui.QTableWidget() table.setShowGrid(False) table.verticalHeader().hide() table.setColumnCount(len(self.columns)) col = 0 for hdr, kwd in self.columns: item = QtGui.QTableWidgetItem(hdr) table.setHorizontalHeaderItem(col, item) col += 1 vbox.addWidget(table, stretch=1) table.itemDoubleClicked.connect(self.itemclicked_cb) self.treeview = table self.entry = QtGui.QLineEdit() vbox.addWidget(self.entry, stretch=0, alignment=QtCore.Qt.AlignTop) self.entry.returnPressed.connect(self.browse_cb) btns = QtHelp.HBox() layout = btns.layout() layout.setSpacing(3) btn = QtGui.QPushButton("Close") btn.clicked.connect(self.close) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) btn = QtGui.QPushButton("Refresh") btn.clicked.connect(self.refresh) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) btn = QtGui.QPushButton("Make Thumbs") btn.clicked.connect(self.make_thumbs) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) vbox.addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignLeft) container.addWidget(widget, stretch=1)
def show_table(self, catalog, info, starlist): self.starlist = starlist self.catalog = catalog # info is ignored, for now #self.info = info self.selected = [] table = self.table table.clearContents() table.setSortingEnabled(False) # Update the starlist info row = 0 table.setRowCount(len(starlist)) for star in starlist: col = 0 for hdr, kwd in self.columns: val = str(star.starInfo.get(kwd, '')) item = QtGui.QTableWidgetItem(val) item.setFlags(item.flags() & ~QtCore.Qt.ItemIsEditable) table.setItem(row, col, item) col += 1 row += 1 table.setSortingEnabled(True)
def __init__(self, logger, container): self.logger = logger self.tag = None self.mycolor = 'skyblue' self.magmap = 'stairs8' self.mag_max = 25.0 self.mag_min = 0.0 # keys: are name, ra, dec, mag, flag, b_r, preference, priority, dst # TODO: automate this generation self.columns = [('Name', 'name'), ('RA', 'ra'), ('DEC', 'dec'), ('Mag', 'mag'), ('Preference', 'preference'), ('Priority', 'priority'), ('Flag', 'flag'), ('b-r', 'b_r'), ('Dst', 'dst'), ('Description', 'description'), ] self.catalog = None self.cursor = 0 self.color_cursor = 'red' self.color_selected = 'skyblue' self.selection_mode = 'single' self.selected = [] self.moving_cursor = False self.btn = Bunch.Bunch() self.mframe = container vbox = QtHelp.VBox() # create the table table = QtGui.QTableWidget() table.setColumnCount(len(self.columns)) table.cellClicked.connect(self.select_star) self.table = table col = 0 for hdr, kwd in self.columns: item = QtGui.QTableWidgetItem(hdr) table.setHorizontalHeaderItem(col, item) col += 1 vbox.addWidget(table, stretch=1) self.cbar = ColorBar.ColorBar(self.logger) self.cmap = cmap.get_cmap(self.magmap) self.imap = imap.get_imap('ramp') self.cbar.set_cmap(self.cmap) self.cbar.set_imap(self.imap) #self.cbar.set_size_request(-1, 20) vbox.addWidget(self.cbar, stretch=0) btns = QtHelp.HBox() btns.setSpacing(5) for name in ('Plot', 'Clear', #'Close' ): btn = QtGui.QPushButton(name) btns.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignCenter) self.btn[name.lower()] = btn self.btn.plot.clicked.connect(self.replot_stars) self.btn.clear.clicked.connect(self.clear) #self.btn.close.clicked.connect(self.close) vbox.addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignTop) self.mframe.addWidget(vbox, stretch=1)