def _populate_review(self, review_fields: List[str]): ''' populate the review section of the inspected feature with given fields and their current values ''' if review_fields: headline = QLabel('Geokodierungs-Parameter') font = headline.font() font.setUnderline(True) headline.setFont(font) self.review_layout.addWidget(headline) grid = QGridLayout() for i, field in enumerate(review_fields): grid.addWidget(QLabel(field), i, 0) value = self.feature.attribute(field) grid.addWidget(QLabel(str(value)), i, 1) self.review_layout.addLayout(grid) # horizontal line line = QFrame() line.setFrameShape(QFrame.HLine) line.setFrameShadow(QFrame.Sunken) self.review_layout.addWidget(line) headline = QLabel('Anschrift laut Dienst') font = headline.font() font.setUnderline(True) headline.setFont(font) self.review_layout.addWidget(headline) bkg_text = self.feature.attribute(self.text_field) self.review_layout.addWidget(QLabel(bkg_text))
def __init__(self, table): QWidget.__init__(self) layout = QVBoxLayout() hlayout = QHBoxLayout() l = QLabel(table.name()) font = l.font() font.setBold(True) l.setFont(font) hlayout.addWidget(l) open_table_btn = QToolButton() icon = QIcon(os.path.dirname(__file__) + "/mActionOpenTableGML.svg") open_table_btn.setIcon(icon) open_table_btn.resize(32, 32) open_table_btn.clicked.connect( lambda checked: self.linkActivated.emit(table.name()) ) hlayout.addWidget(open_table_btn) f = QFrame() f.setFrameStyle(QFrame.Panel | QFrame.Plain) f.setLineWidth(2.0) f.setLayout(hlayout) layout.addWidget(f) self.attribute_label = QLabel() names = [f.name() for f in table.columns()] names += [l.name() + "_id" for l in table.links() if l.max_occurs() == 1] names += [l.ref_table().name() + "_id" for l in table.back_links()] self.attribute_label.setText("\n".join(names)) v2 = QVBoxLayout() v2.addWidget(self.attribute_label) self.attribute_frame = QFrame() self.attribute_frame.setFrameStyle(QFrame.Panel | QFrame.Plain) self.attribute_frame.setLineWidth(2.0) self.attribute_frame.setLayout(v2) layout.addWidget(self.attribute_frame) self.setLayout(layout) fm = QFontMetricsF(self.attribute_label.font()) self.__font_height = fm.height() margins = layout.contentsMargins() self.attribute_x_offset = margins.left() self.attribute_x2_offset = margins.right()
def draw(self, layout: QBoxLayout): ''' draw title in given layout (appended) Parameters ---------- layout : QBoxLayout layout to append the drawn parameter to ''' label = QLabel(self.title) font = label.font() font.setBold(self.bold) font.setPointSize(self.fontsize) label.setFont(font) layout.addWidget(label)
class TableWidget(QWidget): linkActivated = pyqtSignal(str) def __init__(self, table): QWidget.__init__(self) layout = QVBoxLayout() hlayout = QHBoxLayout() l = QLabel(table.name()) font = l.font() font.setBold(True) l.setFont(font) hlayout.addWidget(l) open_table_btn = QToolButton() icon = QIcon(os.path.dirname(__file__) + "/mActionOpenTableGML.svg") open_table_btn.setIcon(icon) open_table_btn.resize(32, 32) open_table_btn.clicked.connect( lambda checked: self.linkActivated.emit(table.name()) ) hlayout.addWidget(open_table_btn) f = QFrame() f.setFrameStyle(QFrame.Panel | QFrame.Plain) f.setLineWidth(2.0) f.setLayout(hlayout) layout.addWidget(f) self.attribute_label = QLabel() names = [f.name() for f in table.columns()] names += [l.name() + "_id" for l in table.links() if l.max_occurs() == 1] names += [l.ref_table().name() + "_id" for l in table.back_links()] self.attribute_label.setText("\n".join(names)) v2 = QVBoxLayout() v2.addWidget(self.attribute_label) self.attribute_frame = QFrame() self.attribute_frame.setFrameStyle(QFrame.Panel | QFrame.Plain) self.attribute_frame.setLineWidth(2.0) self.attribute_frame.setLayout(v2) layout.addWidget(self.attribute_frame) self.setLayout(layout) fm = QFontMetricsF(self.attribute_label.font()) self.__font_height = fm.height() margins = layout.contentsMargins() self.attribute_x_offset = margins.left() self.attribute_x2_offset = margins.right() def attributeCoords(self, idx): # returns the box coordinates of the idx-th attribute offset_y = self.attribute_label.y() + self.attribute_frame.y() offset_x = self.attribute_x_offset x = self.x() + offset_x w = self.width() - offset_x - self.attribute_x2_offset y = self.y() + offset_y + self.__font_height * idx h = self.__font_height return (x, y, w, h)