def __init__(self): super(DialogResult, self).__init__() self.ui = Ui_tablePreviewDialog() self.ui.setupUi(self) self.ui.table_result.setSelectionMode(QAbstractItemView.SingleSelection) self.ui.table_result.setSortingEnabled(True) # connect slots (ui event) self.ui.btn_ok.clicked.connect(self.accept) self.settings = QSettings(SIDD_COMPANY, '%s %s' %(SIDD_APP_NAME, SIDD_VERSION)); self.restoreGeometry(self.settings.value(self.UI_WINDOW_GEOM).toByteArray());
class DialogResult(Ui_tablePreviewDialog, QDialog): """ dialog for visualize result details """ # CONSTANTS ############################# UI_WINDOW_GEOM = 'dlg_result/geometry' # constructor ############################### def __init__(self): super(DialogResult, self).__init__() self.ui = Ui_tablePreviewDialog() self.ui.setupUi(self) self.ui.table_result.setSelectionMode(QAbstractItemView.SingleSelection) self.ui.table_result.setSortingEnabled(True) # connect slots (ui event) self.ui.btn_ok.clicked.connect(self.accept) self.settings = QSettings(SIDD_COMPANY, '%s %s' %(SIDD_APP_NAME, SIDD_VERSION)); self.restoreGeometry(self.settings.value(self.UI_WINDOW_GEOM).toByteArray()); # window event handler overrides ############################# def resizeEvent(self, event): """ handle window resize """ self.ui.table_result.resize(self.width()-2*UI_PADDING, self.height() - self.ui.table_result.y()-self.ui.btn_ok.height()-2*UI_PADDING) below_table = self.height() - self.ui.btn_ok.height() - UI_PADDING self.ui.lb_bldgcount.move(UI_PADDING, below_table) self.ui.txt_bldgcount.move(self.ui.lb_bldgcount.width()+(2*UI_PADDING), below_table) self.ui.btn_ok.move(self.width()-UI_PADDING-self.ui.btn_ok.width(), below_table) @pyqtSlot(QCloseEvent) def closeEvent(self, event): self.settings.setValue(self.UI_WINDOW_GEOM, self.saveGeometry()); super(DialogResult, self).closeEvent(event) # public method ############################### @logUICall def showExposureData(self, header, selected): """ display selected rows with header """ fnames =[] # retrieve field name as table headers cnt_sum = 0 # total number of buildings # find index for building count field cnt_idx = -1 for i, f in header.iteritems(): fnames.append(f.name()) if f.name() == CNT_FIELD_NAME: cnt_idx = i if cnt_idx <> -1: # building count index is found # increment building count for s in selected: cnt_sum += s[cnt_idx].toDouble()[0] # display result self.resultDetailModel = ResultDetailTableModel(header.values(), selected) self.ui.table_result.setModel(self.resultDetailModel) self.ui.table_result.sortByColumn(3, Qt.AscendingOrder) # display exposure specific ui elements self.ui.txt_bldgcount.setVisible(True) self.ui.lb_bldgcount.setVisible(True) self.ui.txt_bldgcount.setText('%d'% round(cnt_sum)) self.ui.txt_bldgcount.setReadOnly(True) @logUICall def showInfoData(self, header, selected): # sync UI self.resultDetailModel = ResultDetailTableModel(header.values(), selected) self.ui.table_result.setModel(self.resultDetailModel) # hide exposure specific ui elements self.ui.txt_bldgcount.setVisible(False) self.ui.lb_bldgcount.setVisible(False)