def createPlotHeader(self, track, wellPlotData): logger.debug(">>createPlotHeader() ") assert track != None assert wellPlotData != None logTrackData = track.data(Qt.UserRole) titleFrame = QFrame() vLayout = QVBoxLayout() vbox = QWidget() label_bg_rgb = self.wellPlotData.label_background_rgb label_bg_alpha = self.wellPlotData.label_background_alpha label_fg_rgb = self.wellPlotData.label_foreground_rgb label_fg_alpha = self.wellPlotData.label_foreground_alpha (fr, fg, fb, falpha) = ImageUtils.rbgaTointValues(label_fg_rgb, label_fg_alpha) (br, bg, bb, balpha) = ImageUtils.rbgaTointValues(label_bg_rgb, label_bg_alpha) #in case logs=0, as we reference .geometry() headerWidget = QWidget() if len(logTrackData.getLogs()) > 0: layout = QVBoxLayout() for log in logTrackData.getLogs(): headerWidget = LogHeaderLabel(log, track, wellPlotData) layout.addWidget(headerWidget) topSpacer = QtGui.QWidget() topSpacer.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) layout.addWidget(topSpacer) vbox.setLayout(layout) vLayout.addWidget(vbox) titleFrame.setLayout(vLayout) titleFrame.setFrameStyle(QtGui.QFrame.StyledPanel | QtGui.QFrame.Raised) trackGeom = track.geometry() titleFrame.setMinimumWidth(trackGeom.width()) titleFrame.setGeometry(trackGeom.x(), trackGeom.y(), trackGeom.width(), headerWidget.geometry().height()) logger.debug( "--createPlotHeader() trackGeom.width(): {0} headerWidget.geometry().height(): {1}" .format(trackGeom.width(), headerWidget.geometry().height())) logger.debug( "--createPlotHeader() titleFrame.width(): {0} titleFrame.geometry().height(): {1}" .format(titleFrame.width(), titleFrame.geometry().height())) return titleFrame
def test_LogHeaderLabel(self): #QWidget: Must construct a QApplication before a QPaintDevice app = QApplication(sys.argv) self.dummyDbSetup.setupDatabase() well = self.dummyDbSetup.createWell() logs = self.dummyDbSetup.create1Log(well.id) track = QWidget() track.setFixedWidth(180) wellPlotData = self.getWellPLotdata() self.assertIsNotNone(wellPlotData, "Is None") logHeaderLabel = LogHeaderLabel(logs[0], track, wellPlotData) boundWidth = logHeaderLabel.logName_label.fontMetrics().boundingRect(logHeaderLabel.logName_label.text()).width() self.assertEquals(track.geometry().width(), logHeaderLabel.geometry().width()) self.assertEquals("SWIRR", logHeaderLabel.logName_label.text()) logger.debug("--test_LogHeaderLabel() name bound width:{0} name width:{1}".format(boundWidth, logHeaderLabel.logName_label.geometry().width() )) logger.debug("--test_LogHeaderLabel() Lval x:{0} name x:{1} Rval x:{2}".format(logHeaderLabel.logValLeft_label.geometry().x(), logHeaderLabel.logName_label.geometry().x(), logHeaderLabel.logValRight_label.geometry().x() )) summedWidth = logHeaderLabel.logValLeft_label.geometry().width()+ logHeaderLabel.logName_label.geometry().width()+logHeaderLabel.logValRight_label.geometry().width() logger.debug("--test_LogHeaderLabel()summed width:{0}".format(summedWidth))