コード例 #1
0
    def value(self) :

        if (self.cacheIsDirty):
            self.cacheIsDirty = False

            formulaStr = self.formula()
            if (formulaStr.startsWith('\'')):
                self.cachedValue = formulaStr.mid(1)
            elif (formulaStr.startsWith('=')):
                self.cachedValue = self.Invalid
                expr = QString(formulaStr.mid(1))
                expr.replace(" ", "")
                expr.append(QChar.Null)

                pos = int(0)
                cachedValue = self.evalExpression(expr, pos)
                if (expr[pos] != QChar.Null):
                    cachedValue = self.Invalid
            else:
                pass
                ok = bool(False)
                # double d = formulaStr.toDouble(&ok)
                # if (ok)
                #     cachedValue = d
                #  else
                #     cachedValue = formulaStr
                #


        return self.cachedValue
コード例 #2
0
ファイル: exceptionhook.py プロジェクト: BloodyD/DocAnalyzer
    def __init__(self, text, parent = None):
        super(ReportWindow, self).__init__(parent, layoutCls = QGridLayout)
        self.setWindowTitle("Fehler!")
        
        self.infoLabel = QLabel(self)
        self.infoLabel.setText("Ein Fehler ist aufegtretten. Bitte senden Sie den unteren Text an <a  href=\"mailto:[email protected]\">[email protected]</a>!")
        self.infoLabel.setTextFormat(Qt.RichText)
        self.infoLabel.setTextInteractionFlags(Qt.TextBrowserInteraction)
        self.infoLabel.setOpenExternalLinks(True)

        self.text = text
        
        self.textArea = QTextEdit(self)
        self.textArea.setPlainText(text)
        self.textArea.setReadOnly(True)

        self.okBtn = QPushButton(QString.fromUtf8("Meldung schließen"), self)
        self.okBtn.clicked.connect(self.close)
        
        self.copyBtn = QPushButton(QString.fromUtf8("Text kopieren"), self)
        self.copyBtn.clicked.connect(self.copy)
        
        self.myLayout.addWidget(self.infoLabel,     0,0,1,2)
        self.myLayout.addWidget(self.textArea,      1,0,1,2)
        self.myLayout.addWidget(self.copyBtn,       2,0,1,1)
        self.myLayout.addWidget(self.okBtn,         2,1,1,1)
コード例 #3
0
 def __pack_cpk(self, csv, cpk):
   
   self.progress.setValue(0)
   self.progress.setMaximum(1000)
   self.progress.setLabelText("Building %s" % cpk)
   
   process = QProcess()
   process.start("tools/cpkmakec", [csv, cpk, "-align=2048", "-mode=FILENAME"])
   
   percent = 0
   
   while not process.waitForFinished(100):
   
     output = QString(process.readAll())
     output = output.split("\n", QString.SkipEmptyParts)
     
     for line in output:
       line = common.qt_to_unicode(line)
       match = OUTPUT_RE.search(line)
       
       if match == None:
         continue
       
       percent = float(match.group(1)) * 1000
     
     self.progress.setValue(percent)
     percent += 1
コード例 #4
0
    def saveProjectAs(self):
        ''' Save the project configuration under a different name '''
        try:
            # get the location for the new config file on disk
            start_dir = paths.OPUS_PROJECT_CONFIGS_PATH
            configDialog = QFileDialog()
            filter_str = QString("*.xml")
            fd = configDialog.getSaveFileName(self,QString("Save As..."),
                                              QString(start_dir), filter_str)
            # Check for cancel
            if not fd:
                return

            filename = QString(fd)
            # append xml extension if no extension was given
            if not filename.endsWith('.xml') and len(filename.split('.')) == 1:
                filename = filename + '.xml'

            if not self.saveProject(filename):
                return

            # hack: open the project right after save to properly change the
            # 'active project' related parameters
            self.openProject(filename)

        except:
            errorMessage = formatExceptionInfo(custom_message = \
                                               'Unexpected error saving config')
            QMessageBox.warning(self, 'Warning', errorMessage)
コード例 #5
0
ファイル: plugins_dialog.py プロジェクト: karstenv/manageR
 def parameterValues(self):
     params = QString()
     for widget in self.widget.children():
         vals = widget.parameterValues()
         if not vals is None:
             params.append(QStringList(vals.values()).join(""))
     return {self.id:params}
コード例 #6
0
ファイル: cdrom.py プロジェクト: hartzell/picard
 def get_cdrom_drives():
     drives = []
     cdinfo = QFile(LINUX_CDROM_INFO)
     if cdinfo.open(QIODevice.ReadOnly | QIODevice.Text):
         drive_names = []
         drive_audio_caps = []
         line = cdinfo.readLine()
         while not line.isEmpty():
             if line.indexOf(':') != -1:
                 key, values = line.split(':')
                 if key == 'drive name':
                     drive_names = QString(values).trimmed().split(QRegExp("\\s+"), QString.SkipEmptyParts)
                 elif key == 'Can play audio':
                     drive_audio_caps = [v == '1' for v in
                                         QString(values).trimmed().split(QRegExp("\\s+"), QString.SkipEmptyParts)]
             line = cdinfo.readLine()
         # Show only drives that are capable of playing audio
         for drive in drive_names:
             if drive_audio_caps[drive_names.indexOf(drive)]:
                 device = u'/dev/%s' % drive
                 symlink_target = QFile.symLinkTarget(device)
                 if symlink_target != '':
                     device = symlink_target
                 drives.append(device)
     return sorted(drives)
コード例 #7
0
 def on_addLexerButton_clicked(self):
     """
     Private slot to add the lexer association displayed to the list.
     """
     ext = self.editorFileExtEdit.text()
     if ext.startsWith(self.extsep):
         ext.replace(self.extsep, "")
     lexer = self.editorLexerCombo.currentText()
     if lexer in self.extras:
         pygmentsLexer = self.pygmentsLexerCombo.currentText()
         if pygmentsLexer.isEmpty():
             lexer = pygmentsLexer
         else:
             lexer = QString("Pygments|%1").arg(pygmentsLexer)
     if not ext.isEmpty() and not lexer.isEmpty():
         itmList = self.editorLexerList.findItems(\
             ext, Qt.MatchFlags(Qt.MatchExactly), 0)
         if itmList:
             index = self.editorLexerList.indexOfTopLevelItem(itmList[0])
             itm = self.editorLexerList.takeTopLevelItem(index)
             del itm
         itm = QTreeWidgetItem(self.editorLexerList, 
             QStringList() << ext << lexer)
         self.editorFileExtEdit.clear()
         self.editorLexerCombo.setCurrentIndex(0)
         self.pygmentsLexerCombo.setCurrentIndex(0)
         self.editorLexerList.sortItems(self.editorLexerList.sortColumn(), 
             self.editorLexerList.header().sortIndicatorOrder())
コード例 #8
0
ファイル: DebutForm.py プロジェクト: Tatsh/debut
    def _rename(self, src, dest):
        prefix = unicode(self.path.toUtf8())
        src = QString(os.path.join(unicode(src.toUtf8()), prefix))
        dest = QString(os.path.join(unicode(dest.toUtf8()), prefix))

        f = QFile(src)
        return f.rename(dest)
コード例 #9
0
ファイル: widgets.py プロジェクト: wioota/ftools-qgis
 def saveVariable(self):
     items = self.workspaceTree.selectedIndexes()
     if len(items) < 1:
         return False
     item = self.workspaceTree.model().getItem(items[0])
     name = item.data(0)
     parent = item.parent()
     names = [name]
     while not parent is None:
         names.append(QString(parent.data(0)))
         parent = parent.parent()
     if len(names) > 1:
         names.pop(-1)
     name = names[-1]
     fd = QFileDialog(self.parent, "Save data to file",
     os.path.join(str(robjects.r.getwd()[0]), unicode(name)+".Rdata"), "R data file (*.Rdata)")
     fd.setAcceptMode(QFileDialog.AcceptSave)
     if not fd.exec_() == QDialog.Accepted:
         return False
     files = fd.selectedFiles()
     selectedFile = files.first()
     if selectedFile.length() == 0:
         return False
     suffix = QString(fd.selectedNameFilter())
     index1 = suffix.lastIndexOf("(")+2
     index2 = suffix.lastIndexOf(")")
     suffix = suffix.mid(index1, index2-index1)
     if not selectedFile.endsWith(suffix):
         selectedFile.append(suffix)
     commands = QString('save(%s, file="%s")' % (name,selectedFile))
     self.runCommand(commands)
コード例 #10
0
ファイル: shp2activities.py プロジェクト: CDE-UNIBE/lokp
def createMap(filename):
    """
    Creates a Python dictionary from a CSV file. The CSV file must be semicolon
    separated (";") and must not contain quotes.
    """

    # Open the CSV file
    file = QFile( "%s/%s" % (basedir,filename))
    file.open(QIODevice.OpenMode(QIODevice.ReadOnly))

    map = {}

    # Read all lines
    while True:
        qByteArray = file.readLine()
        # Break the while loop when the end is reached
        if qByteArray.size() == 0:
            break
        # Remove the trailing end line
        line = QString(qByteArray).remove(QRegExp("\n"))
        # Split the line
        list = line.split(";")
        # Set the key and value to the map
        map[str(list[0].toUpper().toUtf8())] = str(list[1].toUtf8())

    return map
コード例 #11
0
    def update_treasury_data(self):
        start = self.startDate.date()
        start = QDateTime(start, self.timeStart).toPyDateTime()
        end = self.endDate.date()
        end = QDateTime(end, self.timeEnd).toPyDateTime()
        total = self.guild.get_total_in_week(start, end)
        self.depositDate_txt.setText(str(total))

        rank = self.treasuryRankBox.currentText()
        text = self.treasuryNameEntry.text().toLower()
        memlist = []
        self.treasuryMemberList.clear()
        for i in self.guild.data:
            compare = i.lower()
            compare = QString(compare)
            mem_total = 0
            for j in self.guild.data[i].get_deposits_in_dates(start, end):
                mem_total += j[1]
            if mem_total and compare.startsWith(text) and (self.guild.data[i].rank == rank or rank == "All"):
                memlist.append(i)
        memlist = sorted(memlist, key=lambda x: self.guild.data[x].rank_val, reverse=True)
        for i in memlist:
            if not i in self.guild.get_members_in_guild().keys():
                i += ' (left)'
            self.treasuryMemberList.addItem(i)
        self.update_member_deposits()
コード例 #12
0
ファイル: string.py プロジェクト: halbbob/dff
    def processBuffer(self, buff):
        printer = QString()

        for char in buff:
            if (char > "\x20" and char < "\x7e") or (self.isMetaChar(char)):
                printer.append(char)
        return printer
コード例 #13
0
ファイル: pythonshell.py プロジェクト: Brainsciences/luminoso
 def send_to_process(self, qstr):
     if not isinstance(qstr, QString):
         qstr = QString(qstr)
     if not qstr.endsWith('\n'):
         qstr.append('\n')
     self.process.write(qstr.toLocal8Bit())
     self.process.waitForBytesWritten(-1)
コード例 #14
0
ファイル: SqlLayer.py プロジェクト: antwise/QgsPostGIS-Viewer
    def execSql( self, strQuery ):
        strQuery = QString(strQuery)
        query = QSqlQuery( self.sqlDatabase() )	
        if query.exec_( strQuery ) != True:
            print "Failed execute ", strQuery.toLatin1().data(), ' error:' , query.lastError().databaseText().toLatin1().data()
			
        return query
コード例 #15
0
ファイル: goto.py プロジェクト: alepee/dff
 def checkLocation(self, str, base, type):
     offset = QString(str)
     off = offset.toULongLong(base)
     if off[1]:
         if type == "Offset":
             if off[1] < self.heditor.filesize:
                 return off[0]
             else:
                 print "Offset too high"
                 return -1
         elif type == "Page":
             if off[1] < self.heditor.pages:
                 return off[0]
             else:
                 print "Page too high"
                 return -1
         elif type == "Block":
             if off[1] < self.heditor.blocks:
                 return off[0]
             else:
                 print "Block too high"
                 return -1
         else:
             return -1
     else:
         return -1
     return -1
コード例 #16
0
 def runStatusFromThread(self):
     status = self.runThread.estimationguielement.estimation._compute_progress()
     self.progressBar.setValue(status["percentage"])
     newString = QString(status["message"])
     newString.leftJustified(60)
     self.statusLabel.setText(newString)
     self.logFileKey = self.runThread.estimationguielement.estimation._get_current_log(self.logFileKey)
コード例 #17
0
ファイル: analysis.py プロジェクト: karstenv/manageR
 def start(self):
     #reads the info in the widgets and calls the sql command
     command = self.command
     for i,item in enumerate(self.dlg.ui.widgets):
         if type(item)==type(QTextEdit()):
             text=unicode(item.toPlainText())
         elif type(item)==type(QLineEdit()):
             text=unicode(item.text())
         elif type(item)==type(QDoubleSpinBox()):
             text=unicode(item.value())
         elif type(item)==type(QComboBox()):
             text=unicode(item.currentText())
         elif isinstance(item, RListWidget):
             items=item.selectedItems()
             text=QString()
             for j in items:
                 text.append(j.text()+item.spDelimiter())
             text.remove(-1,1)
         else:
             try:
                 text=unicode(item.currentText())
             except:
                 text="Error loading widget."
         command = command.replace("|"+unicode(i+1)+"|",text)
     self.runCommand(command)
     self.dlg.close()
コード例 #18
0
ファイル: moviedata.py プロジェクト: hooloong/gitpython
class SaxMovieHandler(QXmlDefaultHandler):

    def __init__(self, movies):
        super(SaxMovieHandler, self).__init__()
        self.movies = movies
        self.text = QString()
        self.error = None


    def clear(self):
        self.year = None
        self.minutes = None
        self.acquired = None
        self.title = None
        self.notes = None


    def startElement(self, namespaceURI, localName, qName, attributes):
        if qName == "MOVIE":
            self.clear()
            self.year = intFromQStr(attributes.value("YEAR"))
            self.minutes = intFromQStr(attributes.value("MINUTES"))
            ymd = attributes.value("ACQUIRED").split("-")
            if ymd.count() != 3:
                raise ValueError("invalid acquired date {0}".format(
                        str(attributes.value("ACQUIRED"))))
            self.acquired = QDate(intFromQStr(ymd[0]),
                    intFromQStr(ymd[1]), intFromQStr(ymd[2]))
        elif qName in ("TITLE", "NOTES"):
            self.text = QString()
        return True


    def characters(self, text):
        self.text += text
        return True


    def endElement(self, namespaceURI, localName, qName):
        if qName == "MOVIE":
            if (self.year is None or self.minutes is None or
                self.acquired is None or self.title is None or
                self.notes is None or self.title.isEmpty()):
                raise ValueError("incomplete movie record")
            self.movies.add(Movie(self.title, self.year,
                    self.minutes, self.acquired,
                    decodedNewlines(self.notes)))
            self.clear()
        elif qName == "TITLE":
            self.title = self.text.trimmed()
        elif qName == "NOTES":
            self.notes = self.text.trimmed()
        return True


    def fatalError(self, exception):
        self.error = "parse error at line {0} column {1}: {2}".format(
                exception.lineNumber(), exception.columnNumber(),
                exception.message())
        return False
コード例 #19
0
ファイル: MainWindow.py プロジェクト: fpermana/svgbuild-gui
 def selectFile(self):
     #selectedFileName = QtGui.QFileDialog.getOpenFileName(self,"Open file",QtCore.QDir.currentPath(), "SVG files (*.svg);;All files (*.*)", QtCore.QString("SVG files (*.svg)"));
     selectedFileName = QFileDialog.getOpenFileName(self, "Open file", expanduser("~"), "SVG files (*.svg)", QString("SVG files (*.svg)"));
     if selectedFileName:
         foldername = QString(selectedFileName)
         foldername.remove(QRegExp("^.*/")).remove(QRegExp("\.[^\.]*$"))
         self.openFileLineEdit.setText(selectedFileName)
         self.folderNameLineEdit.setText(foldername)
コード例 #20
0
ファイル: moviedata.py プロジェクト: hooloong/gitpython
 def getText(node):
     child = node.firstChild()
     text = QString()
     while not child.isNull():
         if child.nodeType() == QDomNode.TextNode:
             text += child.toText().data()
         child = child.nextSibling()
     return text.trimmed()
コード例 #21
0
ファイル: browsers.py プロジェクト: karstenv/manageR
 def find(self, name):
     location = QString(robjects.r.help(unicode(name))[0])
     regexp = QRegExp(r"(library.*)")
     start = regexp.indexIn(location)
     end = location.lastIndexOf("/")
     name = location[end+1:]
     location = location[start-1:]+".html"
     location.replace("help", "html")
     self.help_open(location, name, location)
コード例 #22
0
ファイル: MainWindow.py プロジェクト: Alwnikrotikz/video4fuze
def toPython(string):
    """
    Little helper function to workaround MS Windows unicode support
    """
    qstring = QString(string)
    if os.name == 'nt':
        return str(qstring.toAscii())
    else:
        return unicode(qstring)
コード例 #23
0
ファイル: main.py プロジェクト: afwlehmann/hoogle-runner
 def run(self, context, match):
     """
     Have KDE open the query in the browser.
     """
     urlString = QString("http://www.haskell.org/hoogle/?hoogle=")
     # Apparently Hoogle doesn't like percent encoded URLs.
     # urlString.append(QUrl.toPercentEncoding(match.data().toString()))
     urlString.append(match.data().toString())
     QDesktopServices().openUrl(QUrl(urlString))
コード例 #24
0
ファイル: tagmanager.py プロジェクト: arxsys/dff-api
  def data(self, role):
     if role == Qt.DisplayRole:
       if self.nodesCount :
         return QString.fromUtf8(self.__tag.name() + ' (' + str(self.nodesCount) + ')')  
       else:
         return QString.fromUtf8(self.__tag.name())
     elif role == Qt.BackgroundRole:
	 color = self.__tag.color()
	 return QColor(color.r, color.g, color.b)
     return QListWidgetItem.data(self, role)
コード例 #25
0
ファイル: worldviews.py プロジェクト: KN2C/pyroboime
 def paint(self, painter, option, widget=None):
     # Draw id
     painter.save()
     robot_id = QString('?')
     robot_id.setNum(self.robot.uid)
     painter.setBrush(BLACK)
     painter.setPen(BLACK)
     painter.setFont(QFont('Courier', 132, 2))
     painter.drawText(-90, -90, robot_id)
     painter.restore()
コード例 #26
0
ファイル: qthelpers.py プロジェクト: sarahdi/openfisca
    def copy(self):
        '''
        Copy the table selection to the clipboard
        At this point, works only for single line selection
        '''
        selection = self.selectionModel()
        indexes = selection.selectedIndexes()
        indexes.sort()

        previous = indexes.pop(0)
        data = self.model().data(previous)
        text = data.toString()
        selected_text = QString(text)
        
        for current in indexes:
            if current.row() != previous.row():
                selected_text.append('\n')
            else:
                selected_text.append('\t')
            data = self.model().data(current)
            text = data.toString()
            selected_text.append(text)
            previous = current
        selected_text.append('\n')
        QApplication.clipboard().setText(selected_text)
コード例 #27
0
 def paintEvent(self, event=None):
     font = QFont(self.font())
     font.setPointSize(font.pointSize() - 1)
     fm = QFontMetricsF(font)
     fracWidth = fm.width(FractionSlider.WSTRING)
     indent = fm.boundingRect("9").width() / 2.0
     if not X11:
         fracWidth *= 1.5
     span = self.width() - (FractionSlider.XMARGIN * 2)
     value = self.__numerator / float(self.__denominator)
     painter = QPainter(self)
     painter.setRenderHint(QPainter.Antialiasing)
     painter.setRenderHint(QPainter.TextAntialiasing)
     painter.setPen(self.palette().color(QPalette.Mid))
     painter.setBrush(self.palette().brush(
             QPalette.AlternateBase))
     painter.drawRect(self.rect())
     segColor = QColor(Qt.green).dark(120)
     segLineColor = segColor.dark()
     painter.setPen(segLineColor)
     painter.setBrush(segColor)
     painter.drawRect(FractionSlider.XMARGIN,
                      FractionSlider.YMARGIN, span, fm.height())
     textColor = self.palette().color(QPalette.Text)
     segWidth = span / self.__denominator
     segHeight = fm.height() * 2
     nRect = fm.boundingRect(FractionSlider.WSTRING)
     x = FractionSlider.XMARGIN
     yOffset = segHeight + fm.height()
     for i in range(self.__denominator + 1):
         painter.setPen(segLineColor)
         painter.drawLine(x, FractionSlider.YMARGIN, x, segHeight)
         painter.setPen(textColor)
         y = segHeight
         rect = QRectF(nRect)
         rect.moveCenter(QPointF(x, y + fm.height() / 2.0))
         painter.drawText(rect, Qt.AlignCenter,
                          QString.number(i))
         y = yOffset
         rect.moveCenter(QPointF(x, y + fm.height() / 2.0))
         painter.drawText(rect, Qt.AlignCenter,
                          QString.number(self.__denominator))
         painter.drawLine(QPointF(rect.left() + indent, y),
                          QPointF(rect.right() - indent, y))
         x += segWidth
     span = int(span)
     y = FractionSlider.YMARGIN - 0.5
     triangle = [QPointF(value * span, y),
                 QPointF((value * span) +
                         (2 * FractionSlider.XMARGIN), y),
                 QPointF((value * span) +
                         FractionSlider.XMARGIN, fm.height())]
     painter.setPen(Qt.yellow)
     painter.setBrush(Qt.darkYellow)
     painter.drawPolygon(QPolygonF(triangle))
コード例 #28
0
    def copy(self):
        '''
        Copy the table selection to the clipboard
        '''
        selection = self.selectionModel()
        indexes = selection.selectedIndexes()
        indexes.sort()
        previous = indexes.pop(0)
        data = self.model().data(previous)
        try:
            text = data.toString()
        except:
            text = str(data)
        selected_text = QString(text)

        for current in indexes:
            if current.row() != previous.row():
                selected_text.append('\n')
            else:
                selected_text.append('\t')
            data = self.model().data(current)
            try:
                text = data.toString()
            except:
                text = str(data)
            selected_text.append(text)
            previous = current
        selected_text.append('\n')
        QApplication.clipboard().setText(selected_text)
コード例 #29
0
ファイル: burning.py プロジェクト: homoludens/Freedom-Toaster
    def startCommand(self, isofile):
        print "startCommand"
        b=QString("cdrecord -v -pad speed=8 dev=/dev/cdrom "+isofile) 
        a=b.split(" ")
        self.process.start(a.first(), a.mid(1))

         
        if  self.process.exitCode():
            print "exitCode"
            self.resetButtons()
            return
コード例 #30
0
def save_html(outObj, uiObj, dictBeamData, dictColData, reportsummary,
              filename):
    fileName = (filename)
    myfile = open(fileName, "w")
    myfile.write(t('! DOCTYPE html'))
    myfile.write(t('html'))
    myfile.write(t('head'))
    myfile.write(
        t('link type="text/css" rel="stylesheet" href="mystyle.css"/'))
    myfile.write(t('/head'))
    myfile.write(t('body'))

    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    # DATA PARAMS
    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    #Project summary data
    companyname = str(reportsummary["ProfileSummary"]['CompanyName'])
    companylogo = str(reportsummary["ProfileSummary"]['CompanyLogo'])

    groupteamname = str(reportsummary["ProfileSummary"]['Group/TeamName'])
    designer = str(reportsummary["ProfileSummary"]['Designer'])
    projecttitle = str(reportsummary['ProjectTitle'])
    subtitle = str(reportsummary['Subtitle'])
    jobnumber = str(reportsummary['JobNumber'])
    method = str(reportsummary['Method'])
    addtionalcomments = str(reportsummary['AdditionalComments'])

    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    #FinPlate Main Data
    connectivity = str(uiObj['Member']['Connectivity'])
    shear_load = str(uiObj['Load']['ShearForce (kN)'])
    column_sec = str(uiObj['Member']['ColumSection'])
    beam_sec = str(uiObj['Member']['BeamSection'])
    plateThick = str(uiObj['Plate']['Thickness (mm)'])
    boltType = str(uiObj['Bolt']['Type'])
    boltGrade = str(uiObj['Bolt']['Grade'])
    boltDia = str(uiObj['Bolt']['Diameter (mm)'])
    #'Size (mm)'
    weld_Thick = str(uiObj['Weld']['Size (mm)'])

    beamdepth = str(int(round(outObj['Plate']['beamdepth'], 1)))
    beamflangethk = str(int(round(outObj['Plate']['beamflangethk'], 1)))
    beamrootradius = str(int(round(outObj['Plate']['beamrootradius'], 1)))
    platethk = str(int(round(outObj['Plate']['platethk'], 1)))
    blockshear = str(int(round(outObj['Plate']['blockshear'], 1)))
    colflangethk = str(int(round(outObj['Plate']["colflangethk"], 1)))
    colrootradius = str(int(round(outObj['Plate']['colrootradius'])))

    plateWidth = str(int(round(outObj['Plate']['width'], 1)))
    plateLength = str(int(round(outObj['Plate']['height'], 1)))
    weldSize = str(int(round(outObj['Weld']['thickness'], 1)))

    plateDimension = plateLength + 'X' + plateWidth + 'X' + plateThick
    noOfBolts = str(outObj['Bolt']['numofbolts'])
    noOfRows = str(outObj['Bolt']['numofrow'])
    noOfCol = str(outObj['Bolt']['numofcol'])
    edge = str(int(round(outObj['Bolt']['edge'], 1)))
    gauge = str(int(round(outObj['Bolt']['gauge'], 1)))
    pitch = str(int(round(outObj['Bolt']['pitch'], 1)))
    end = str(int(round(outObj['Bolt']['enddist'], 1)))
    weld_strength = str(round(float(outObj['Weld']['weldstrength'] / 1000), 3))
    moment_demand = str(outObj['Plate']['externalmoment'])
    gap = '20'
    beam_tw = str(float(dictBeamData[QString("tw")]))

    bolt_fu = str(outObj['Bolt']['bolt_fu'])
    bolt_dia = str(outObj['Bolt']['bolt_dia'])
    kb = str(outObj['Bolt']['k_b'])
    beam_w_t = str(outObj['Bolt']['beam_w_t'])
    web_plate_t = str(outObj['Bolt']['web_plate_t'])
    beam_fu = str(outObj['Bolt']['beam_fu'])
    dia_hole = str(outObj['Bolt']['dia_hole'])
    web_plate_fy = str(outObj['Plate']['web_plate_fy'])
    weld_fu = str(outObj['Weld']['weld_fu'])
    weld_l = str(outObj['Weld']['effectiveWeldlength'])
    shearCapacity = str(round(outObj['Bolt']['shearcapacity'], 3))
    bearingcapacity = str(round(outObj['Bolt']['bearingcapacity'], 4))
    momentDemand = str(outObj['Plate']['externalmoment'])

    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    # Header of the pdf fetched from dialogbox
    rstr = t('table')
    rstr += t('tr')
    row = [
        0,
        '<object type= "image/PNG" data= "Fossee_logo.png" width= 150></object>',
        'Created with'
        ' &nbsp'
        ' &nbsp'
        '<object type= "image/PNG" data= "Osdag_header.png" width= 150></object>'
    ]
    rstr += t('td colspan="2" align= "center" class= "viewbl" ') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('td colspan="2" align= "right" class="viewbl"') + row[2] + t(
        '/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Company Name']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, companyname]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Project Title']
    rstr += t('td float="right" class= "header1_3"') + space(
        row[0]) + row[1] + t('/td')
    row = [0, projecttitle]
    rstr += t('td float="right" class= "header1_3"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Group/Team Name']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, groupteamname]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Subtitle']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, subtitle]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Designer']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, designer]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Job Number']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, jobnumber]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Date']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, time.strftime("%d /%m /%Y")]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Method']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, method]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')
    rstr += t('/table')

    rstr += t('hr')
    #     rstr += t('p> &nbsp</p')
    #     rstr += t('hr')
    #     rstr += t('/hr')
    rstr += t('/hr')

    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    #Design Conclusion
    rstr += t('table')

    row = [0, "Design Conclusion", "IS800:2007/Limit state design"]
    rstr += t('tr')
    rstr += t('td colspan="2" class="header0"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    row = [1, "Finplate", "Pass"]
    rstr += t('tr')
    rstr += t('td class="header1 "') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header1 safe"') + row[2] + t('/td')
    #rstr += t('td class="header1 safe"') + row[3] + t('/td')
    rstr += t('/tr')

    row = [0, "Finplate", " "]
    rstr += t('tr')
    rstr += t('td colspan="2" class="header0"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    row = [0, "Connection Properties", " "]
    rstr += t('tr')
    rstr += t('td colspan="2" class="header1_1"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    row = [0, "Connection ", " "]
    rstr += t('tr')
    rstr += t('td colspan="2" class="header1"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    row = [1, "Connection Title", " Single Finplate"]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [1, "Connection Type", "Shear Connection"]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [0, "Connection Category ", " "]
    rstr += t('tr')
    rstr += t('td colspan="2" class="header1"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    #row = [1, "Connectivity", "Column Web Beam Web"]
    row = [1, "Connectivity", connectivity]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [1, "Beam Connection", "Bolted"]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #
    row = [1, "Column Connection", "Welded"]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [0, "Loading (Factored Load) ", " "]
    rstr += t('tr')
    rstr += t('td colspan="2" class="header1"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    #row = [1, "Shear Force (kN)", "140"]
    row = [1, "Shear Force (kN)", shear_load]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [0, "Components ", " "]
    rstr += t('tr')
    rstr += t('td colspan="2" class="header1"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    #row = [1, "Column Section", "ISSC 200"]
    row = [1, "Column Section", column_sec]

    rstr += t('tr')
    rstr += t('td class="header1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [2, "Material", "Fe " + beam_fu]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [1, "Beam Section", "ISMB 400"]
    row = [1, "Beam Section", beam_sec]
    rstr += t('tr')
    rstr += t('td class="header1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [2, "Material", "Fe " + beam_fu]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [2, "Hole", "STD"]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [1, "Plate Section ", "PLT 300X10X100 "]
    row = [1, "Plate Section", plateDimension]
    rstr += t('tr')
    rstr += t('td class="header1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Thickness (mm)", "10"]
    row = [2, "Thickness (mm)", plateThick]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Width (mm)", "10"]
    row = [2, "Width (mm)", plateWidth]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Depth (mm)", "300"]
    row = [2, "Depth (mm)", plateLength]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [2, "Hole", "STD"]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [1, "Weld ", " "]
    rstr += t('tr')
    rstr += t('td colspan="2" class="header1"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    row = [2, "Type", "Double Fillet"]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Size (mm)", "6"]
    row = [2, "Size (mm)", weldSize]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [1, "Bolts ", " "]
    rstr += t('tr')
    rstr += t('td colspan="2" class="header1"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    #row = [2, "Type", "HSFG"]
    row = [2, "Type", boltType]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Grade", "8.8"]
    row = [2, "Grade", boltGrade]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Diameter (mm)", "20"]
    row = [2, "Diameter (mm)", boltDia]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Bolt Numbers", "3"]
    row = [2, "Bolt Numbers", noOfBolts]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Columns (Vertical Lines)", "1 "]
    row = [2, "Columns (Vertical Lines)", noOfCol]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Bolts Per Column", "3"]
    row = [2, "Bolts Per Column", noOfRows]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Gauge (mm)", "0"]
    row = [2, "Gauge (mm)", gauge]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Pitch (mm)", "100"]
    row = [2, "Pitch (mm)", pitch]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "End Distance (mm)", "50"]
    row = [2, "End Distance (mm)", end]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + row[2] + t('/td')
    rstr += t('/tr')

    #row = [2, "Edge Distance (mm)", "50"]
    row = [2, "Edge Distance (mm)", edge]
    rstr += t('tr')
    rstr += t('td class="header2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [0, "Assembly ", " "]
    rstr += t('tr')
    rstr += t('td colspan="2" class="header1"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    #row = [1, "Column-Beam Clearance (mm)", "20"]
    row = [1, "Column-Beam Clearance (mm)", gap]
    rstr += t('tr')
    rstr += t('td class="header1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2 "') + row[2] + t('/td')
    rstr += t('/tr')

    rstr += t('/table')
    rstr += t('h1 class="break"')  # page break
    rstr += t('/h1')

    #*************************************************************************************************************************
    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    # Header of the pdf fetched from dialogbox
    rstr += t('table')
    rstr += t('tr')
    row = [
        0,
        '<object type= "image/PNG" data= "Fossee_logo.png" width= 150></object>',
        'Created with'
        ' &nbsp'
        ' &nbsp'
        '<object type= "image/PNG" data= "Osdag_header.png" width= 150></object>'
    ]
    rstr += t('td colspan="2" align= "center" class= "viewbl" ') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('td colspan="2" align= "right" class="viewbl"') + row[2] + t(
        '/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Company Name']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, companyname]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Project Title']
    rstr += t('td float="right" class= "header1_3"') + space(
        row[0]) + row[1] + t('/td')
    row = [0, projecttitle]
    rstr += t('td float="right" class= "header1_3"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Group/Team Name']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, groupteamname]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Subtitle']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, subtitle]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Designer']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, designer]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Job Number']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, jobnumber]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Date']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, time.strftime("%d /%m /%Y")]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Method']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, method]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')
    rstr += t('/table')

    rstr += t('hr')
    rstr += t('/hr')

    #*************************************************************************************************************************
    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    #Design Check

    rstr += t('table')
    row = [0, "Design Check", " "]
    rstr += t('tr')
    rstr += t('td colspan="4" class="header1_1"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, "Check", "Required", "Provided", "Remark"]
    rstr += t('td class="header1_2"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header1_2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header1_2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header1_2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    const = str(round(math.pi / 4 * 0.78, 4))
    #row =[0,"Bolt shear capacity (kN)"," ","<i>V</i><sub>dsb</sub> = ((800*0.6123*20*20)/(&#8730;3*1.25*1000) = 90.53 <br> [cl. 10.3.3]"]
    row = [
        0, "Bolt shear capacity (kN)", " ", "<i>V</i><sub>dsb</sub> = (" +
        bolt_fu + "*" + const + "*" + bolt_dia + "*" + bolt_dia +
        ")/(&#8730;3*1.25*1000) = " + shearCapacity + "<br> [cl. 10.3.3]", ""
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"Bolt bearing capacity (kN)",""," <i>V</i><sub>dsb</sub> = (2.5*0.5*20*8.9*410)  = 72.98<br> [cl. 10.3.4]"]
    row = [
        0, "Bolt bearing capacity (kN)", "",
        " <i>V</i><sub>dsb</sub> = (2.5*" + kb + "*" + bolt_dia + "*" +
        beam_tw + "*" + beam_fu + ")/(1.25*1000)  = " + bearingcapacity +
        "<br> [cl. 10.3.4]", ""
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"Bolt capacity (kN)","","Min (90.53,72.98) = 72.98","<p align=right style=color:green><b>Pass</b></p>"]
    boltCapacity = bearingcapacity if bearingcapacity < shearCapacity else shearCapacity
    row = [
        0, "Bolt capacity (kN)", "", "Min (" + shearCapacity + ", " +
        bearingcapacity + ") = " + boltCapacity,
        "<p align=right style=color:green><b>Pass</b></p>"
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"No. of bolts","140/72.98 = 1.9","3","<p align=right style=color:green><b>Pass</b></p>"]
    bolts = str(round(float(shear_load) / float(boltCapacity), 1))
    row = [
        0, "No. of bolts", shear_load + "/" + boltCapacity + " = " + bolts,
        noOfBolts, " <p align=right style=color:green><b>Pass</b></p>"
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"No.of column(s)","&#8804;2","1"]
    row = [0, "No.of column(s)", " &#8804;2", noOfCol, ""]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"No. of bolts per column"," ","3"]
    row = [0, "No. of bolts per column", " ", noOfRows, ""]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"Bolt pitch (mm)","&#8805;2.5*20 = 50, &#8804; Min(32*8.9, 300) = 300 <br> [cl. 10.2.2]","100"]
    minPitch = str(int(2.5 * float(bolt_dia)))
    maxPitch = str(300) if 32 * float(beam_tw) > 300 else str(
        int(math.ceil(32 * float(beam_tw))))
    row = [
        0, "Bolt pitch (mm)",
        " &#8805;2.5* " + bolt_dia + " = " + minPitch + ",  &#8804;Min(32*" +
        beam_tw + ", 300) = " + maxPitch + "<br> [cl. 10.2.2]", pitch, ""
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"Bolt gauge (mm)","&#8805;2.5*20 = 50,&#8804; Min(32*8.9, 300) = 300 <br> [cl. 10.2.2]","0"]
    minGauge = str(int(2.5 * float(bolt_dia)))
    maxGauge = str(300) if 32 * float(beam_tw) > 300 else str(
        int(math.ceil(32 * float(beam_tw))))
    row = [
        0, "Bolt gauge (mm)",
        " &#8805;2.5*" + bolt_dia + " = " + minGauge + ", &#8804;Min(32*" +
        beam_tw + ", 300) = " + maxGauge + " <br> [cl. 10.2.2]", gauge, ""
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"End distance (mm)","&#8805;1.7* 22 = 37.4,&#8804;12*8.9 = 106.9 <br> [cl. 10.2.4]","50"]
    minEnd = str(1.7 * float(dia_hole))
    maxEnd = str(12 * float(beam_tw))
    row = [
        0, "End distance (mm)", " &#8805;1.7*" + dia_hole + " = " + minEnd +
        ", &#8804;12*" + beam_tw + " = " + maxEnd + " <br> [cl. 10.2.4]", end,
        ""
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"Edge distance (mm)","&#8805; 1.7* 22 = 37.4,&#8804;12*8.9 = 106.9<br> [cl. 10.2.4]","50"," <p align=right style=color:green><b>Pass</b></p>"]
    minEdge = str(1.7 * float(dia_hole))
    maxEdge = str(12 * float(beam_tw))
    row = [
        0, "Edge distance (mm)", " &#8805;1.7*" + dia_hole + " = " + minEdge +
        ", &#8804;12*" + beam_tw + " = " + maxEdge + "<br> [cl. 10.2.4]", edge,
        " <p align=right style=color:green><b>Pass</b></p>"
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [
        0, "Block shear capacity (kN)", shear_load,
        "<i>V</i><sub>db</sub> = " + blockshear + "<br>", ""
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"Plate thickness (mm)","(5*140*1000)/(300*250)= 9.33","10"]
    minPlateThick = str(
        round(
            5 * float(shear_load) * 1000 /
            (float(plateLength) * float(web_plate_fy)), 2))
    row = [
        0, "Plate thickness (mm)",
        "(5*" + shear_load + "*1000)/(" + plateLength + "*" + web_plate_fy +
        ") = " + minPlateThick + "<br> [Owens and Cheal, 1989]", plateThick, ""
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #     if
    minEdge = str(0.6 * float(beamdepth))
    if connectivity == "Beam-Beam":
        maxEdge = str(
            float(beamdepth) - float(beamflangethk) - float(beamrootradius) -
            float(colflangethk) - float(colrootradius) - 5)
        maxedgestring = beamdepth + "-" + beamflangethk + "-" + beamrootradius + "-" + colflangethk + "-" + colrootradius + "- 5"
    else:
        maxEdge = str(
            float(beamdepth) - 2 * float(beamflangethk) -
            2 * float(beamrootradius) - 10)
        maxedgestring = beamdepth + "-" + beamflangethk + "-" + beamrootradius + "-" + "10"

    row = [
        0, "Plate height (mm)", "&#8805;0.6*" + beamdepth + "=" + minEdge +
        ", &#8804;" + maxedgestring + "=" + maxEdge +
        "<br> [cl. 10.2.4, Insdag Detailing Manual, 2002]", plateLength,
        " <p align=right style=color:green><b>Pass</b></p>", "300", ""
    ]
    #        #row =[0,"Plate height (mm)","",plateLength]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, "Plate width (mm)", "", "100", ""]
    #row =[0,"Plate width (mm)","",plateWidth]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"Plate moment capacity (kNm)","(2*90.5*100<sup>2</sup>)/100 = 18.1","<i>M</i><sub>d</sub> =1.2*250*<i>Z</i> = 40.9 <br>[cl. 8.2.1.2]","<p align=right style=color:green><b>Pass</b></p>"]
    z = math.pow(float(plateLength), 2) * (float(plateThick) /
                                           (6 * 1.1 * 1000000))
    momentCapacity = str(round(1.2 * float(web_plate_fy) * z, 2))
    row = [
        0, "Plate moment capacity (kNm)", "(2*" + shearCapacity + "*" + pitch +
        "<sup>2</sup>)/(" + pitch + "*1000) = " + moment_demand,
        "<i>M</i><sub>d</sub> = (1.2*" + web_plate_fy +
        "*<i>Z</i>)/(1000*1.1) = " + momentCapacity + "<br>[cl. 8.2.1.2]",
        "<p align=right style=color:green><b>Pass</b></p>"
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"Effective weld length (mm)","","300 - 2*6 = 288"]
    effWeldLen = str(int(float(plateLength) - (2 * float(weld_Thick))))
    row = [
        0, "Effective weld length (mm)", "",
        plateLength + "-2*" + weld_Thick + " = " + effWeldLen, ""
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"Weld strength (kN/mm)","&#8730;[(18100*6)/(2*288)<sup>2</sup>]<sup>2</sup> + [140/(2*288)]<sup>2</sup> <br>=0.699","<i>f</i><sub>v</sub>=(0.7*6*410)/(&#8730;3*1.25)<br>= 0.795<br>[cl. 10.5.7]"," <p align=right style=color:green><b>Pass</b></p>"]
    a = float(2 * float(effWeldLen))
    b = 2 * math.pow((float(effWeldLen)), 2)
    x = (float(momentDemand) * 1000 * 6)
    resultant_shear = str(
        round(
            math.sqrt(
                math.pow((x / b), 2) + math.pow((float(shear_load) / a), 2)),
            3))
    momentDemand_knmm = str(int(float(momentDemand) * 1000))
    row = [
        0, "Weld strength (kN/mm)",
        " &#8730;[(" + momentDemand_knmm + "*6)/(2*" + effWeldLen +
        "<sup>2</sup>)]<sup>2</sup> + [" + shear_load + "/(2*" + effWeldLen +
        ")]<sup>2</sup> <br>= " + resultant_shear,
        "<i>f</i><sub>v</sub>= (0.7*" + weldSize + "*" + weld_fu +
        ")/(&#8730;3*1.25)<br>= " + weld_strength + "<br>[cl. 10.5.7]",
        " <p align=right style=color:green><b>Pass</b></p>"
    ]
    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    #row =[0,"Weld thickness (mm)","(0.699*&#8730;3*1.25)/(0.7*410)=5.27<br>[cl. 10.5.7]","6","<p align=right style=color:green><b>Pass</b></p>"]

    weld_thickness = str(
        round((float(resultant_shear) * 1000 * (math.sqrt(3) * 1.25)) /
              (0.7 * float(weld_fu)), 2))
    x = str((float(platethk) * 0.8))
    maxweld = str(max(float(weld_thickness), float(x)))
    #     maxweld = str(9) if str((float( platethk)*0.8)) > str(9) else str(round((float(resultant_shear) * 1000*(math.sqrt(3) * 1.25))/(0.7 * float(weld_fu)),2))
    #     maxWeld = str(9) if str(round((float(resultant_shear) * 1000*(math.sqrt(3) * 1.25))/(0.7 * float(weld_fu)),2)) == 9 else str((float( platethk)*0.8))
    #     row =[0,"Weld thickness (mm)","Max(("+resultant_shear+"*&#8730;3*1.25)/(0.7*"+weld_fu+")"+", 0.8*"+platethk+") = "+ maxWeld + "<br>[cl. 10.5.7, Insdag Detailing Manual, 2002]",weldSize,"<p align=right style=color:green><b>Pass</b></p>"]
    row = [
        0, "Weld thickness (mm)",
        "Max((" + resultant_shear + "*1000*&#8730;3* 1.25)/(0.7 * " + weld_fu +
        ")" + "," + platethk + "* 0.8" + ") = " + maxweld +
        "<br>[cl. 10.5.7, Insdag Detailing Manual, 2002]", weldSize,
        "<p align=right style=color:green><b>Pass</b></p>"
    ]

    rstr += t('td class="header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[2] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[3] + t('/td')
    rstr += t('td class="header2"') + space(row[0]) + row[4] + t('/td')

    rstr += t('/table')
    rstr += t('h1 class="break"')  # page break
    rstr += t('/h1')

    #*************************************************************************************************************************
    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    # Header of the pdf fetched from dialogbox
    rstr += t('table')
    rstr += t('tr')
    row = [
        0,
        '<object type= "image/PNG" data= "Fossee_logo.png" width= 150></object>',
        'Created with'
        ' &nbsp'
        '<object type= "image/PNG" data= "Osdag_header.png" width= 150></object>'
    ]
    rstr += t('td colspan="2" align= "center" class= "viewbl" ') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('td colspan="2" align= "right" class="viewbl1"') + row[2] + t(
        '/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Company Name']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, companyname]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Project Title']
    rstr += t('td float="right" class= "header1_3"') + space(
        row[0]) + row[1] + t('/td')
    row = [0, projecttitle]
    rstr += t('td float="right" class= "header1_3"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Group/Team Name']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, groupteamname]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Subtitle']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, subtitle]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Designer']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, designer]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Job Number']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, jobnumber]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Date']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, time.strftime("%d /%m /%Y")]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Method']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, method]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')
    rstr += t('/table')

    rstr += t('hr')
    rstr += t('/hr')

    #*************************************************************************************************************************
    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    #Digram

    rstr += t('table')

    row = [0, "Views", " "]
    rstr += t('tr')
    rstr += t('td colspan="2" class=" viewtbl header1_1"') + space(
        row[0]) + row[1] + t('/td')
    #rstr += t('td class=" viewtbl "') + row[2] + t('/td')
    rstr += t('/tr')

    row = [
        0,
        '<object type="image/PNG" data="3D_Model.png" width ="550"></object>',
        '<object type="image/svg+xml" data="finTop.svg" width ="500"></object>'
    ]
    rstr += t('tr')
    rstr += t('td  align="center" class=" viewtbl"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('td  align="center" class=" viewtbl"') + row[2] + t('/td')
    rstr += t('/tr')

    row = [
        0,
        '<object type="image/svg+xml"" data="finSide.svg" width ="460"></object>',
        '<object type="image/svg+xml" data="finFront.svg" width ="640"></object>'
    ]
    #img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0...">
    rstr += t('tr')
    rstr += t('td align="center" class=" viewtbl"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('td align="center" class=" viewtbl "') + row[2] + t('/td')
    rstr += t('/tr')

    rstr += t('/table')
    rstr += t('h1 class="break"')  # page break
    rstr += t('/h1')

    #*************************************************************************************************************************
    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    # Header of the pdf fetched from dialogbox
    rstr += t('table')
    rstr += t('tr')
    row = [
        0,
        '<object type= "image/PNG" data= "Fossee_logo.png" width= 150></object>',
        'Created with'
        ' &nbsp'
        ' &nbsp'
        '<object type= "image/PNG" data= "Osdag_header.png" width= 150></object>'
    ]
    rstr += t('td colspan="2" align= "center" class= "viewbl" ') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('td colspan="2" align= "right" class="viewbl"') + row[2] + t(
        '/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Company Name']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, companyname]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Project Title']
    rstr += t('td float="right" class= "header1_3"') + space(
        row[0]) + row[1] + t('/td')
    row = [0, projecttitle]
    rstr += t('td float="right" class= "header1_3"') + space(
        row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Group/Team Name']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, groupteamname]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Subtitle']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, subtitle]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Designer']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, designer]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Job Number']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, jobnumber]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')

    rstr += t('tr')
    row = [0, 'Date']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, time.strftime("%d /%m /%Y")]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, 'Method']
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    row = [0, method]
    rstr += t('td class= "header1_3"') + space(row[0]) + row[1] + t('/td')
    rstr += t('/tr')
    rstr += t('/table')

    rstr += t('hr')
    rstr += t('/hr')

    #*************************************************************************************************************************
    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    #Additional comments

    rstr += t('table')
    rstr += t('''col width=30%''')
    rstr += t('''col width=70%''')

    rstr += t('tr')
    row = [0, "Additional Comments", addtionalcomments]
    rstr += t('td class= "header2_col1"') + space(row[0]) + row[1] + t('/td')
    rstr += t('td class= "header3" align="justified"') + row[2] + t('/td')
    rstr += t('/tr')

    rstr += t('/table')

    myfile.write(rstr)
    myfile.write(t('/body'))
    myfile.write(t('/html'))
    myfile.close()
コード例 #31
0
 def __init__(self, filename=QString(), dataset=None):
     super(StudiesModel, self).__init__()
     self.dataset = dataset
     self.update_study_list()
コード例 #32
0
 def __init__(self, group, name, default=None):
     if default is None:
         default = ''
     Parameter.__init__(self, group, name, default)
     self.value = QString()
コード例 #33
0
#coding=utf-8

from time import sleep
from PyQt4.QtCore import QTextStream,QString
from PyQt4.QtNetwork import QLocalSocket
import random
import os

if __name__ == "__main__":

    pid = os.getpid()
    ls = QLocalSocket()
    ls.connectToServer("localserver-test")
    if ls.waitForConnected():
        print "连接成功"
        while True:
            try:
                ts = QTextStream(ls)
                ts << QString.number(random.randrange(1000)) + "\nTTTTTTTTTT" + "\n PID = " + QString.number(pid) + "\n"
                ts.flush()
                print "werite :", ls.waitForBytesWritten()
                print pid
                sleep(1)
            except Exception as e:
                print e.message

コード例 #34
0
 def setOverlayPixmap(self):
     self.tray.setOverlayIconByName(QString(""))
     self.tray.setOverlayIconByPixmap(
         Qt.QIcon.fromTheme("dialog-information"))
コード例 #35
0
 def test_indexfrompath_qstr(self):
     m = ManifestModel(self.repo, rev=0)
     self.assertEqual(m.index(1, 0), m.indexFromPath(QString('bar')))
コード例 #36
0
 def on_actionOpen_triggered(self):
     fname = QFileDialog.getOpenFileName(
         None, self.trUtf8("Select documentation file"), QString(),
         self.trUtf8("*.yml, *.yaml"), None)
     if fname and QFile.exists(fname):
         self.loadFile(unicode(fname))
コード例 #37
0
    def process_request(self):
        socket = self.sender()
        request_data = socket.readAll()

        if not self.authorize_request(request_data):
            socket.write('HTTP/1.1 407 Proxy Authentication Required\r\n')
            if self.debug:
                self.log.write('407 Proxy Authentication Required\n\n')
            socket.write('Proxy-Authenticate: Basic realm="test"\r\n')
            socket.write('\r\n')
            socket.disconnectFromHost()
            return
        else:
            # remove Proxy-Authorization header
            start = request_data.indexOf('Proxy-Authorization:')
            end = request_data.lastIndexOf('\r\n')
            request_data.remove(start, end)
            request_data.append('\r\n')

        pos = request_data.indexOf('\r\n')
        request_line = request_data.left(pos)
        request_data.remove(0, pos + 2)

        entries = request_line.split(' ')
        method = entries[0]
        address = entries[1]
        version = entries[2]
        port = '80'

        if address.count(':') > 1:
            protocol, host, port = address.split(':')
        else:
            protocol, host = address.split(':')

        print 'address', address

        #url = QUrl( protocol + host )
        url = QUrl.fromEncoded(address)
        #url.setHost( host )
        #url.setPort( int(port) )

        if not url.isValid():
            if self.debug:
                self.log.write('Invalid URL: %s\n\n', url)
            socket.disconnectFromHost()
            return

        host = url.host()
        port = 80 if (url.port() < 0) else url.port()
        req = url.encodedPath()
        if url.hasQuery():
            req.append('?').append(url.encodedQuery())
        request_line = method + ' ' + req + ' ' + version + '\r\n'
        request_data.prepend(request_line)

        if self.debug:
            self.log.write(method + ' ' + address + ' ' + version + '\n\n')

        key = host + ':' + QString.number(port)
        proxy_socket = socket.findChild(QTcpSocket, key)
        if proxy_socket:
            proxy_socket.setObjectName(key)
            proxy_socket.setProperty('url', url)
            proxy_socket.setProperty('request_data', request_data)
            proxy_socket.write(request_data)
        else:
            proxy_socket = QTcpSocket(socket)
            proxy_socket.setObjectName(key)
            proxy_socket.setProperty('url', url)
            proxy_socket.setProperty('request_data', request_data)
            proxy_socket.connected.connect(self.send_request)
            proxy_socket.readyRead.connect(self.transfer_data)
            proxy_socket.disconnected.connect(self.close_connection)
            proxy_socket.error.connect(self.close_connection)
            proxy_socket.connectToHost(host, port)
コード例 #38
0
ファイル: yarascanTreeView.py プロジェクト: ulisesrc/yavol
 def __init__(self, rule_name, process, pid=0, text=""):
     self.rule_name = QString(rule_name)
     self.process = QString(process)
     self.pid = pid
     self.text = QString(text)
コード例 #39
0
 def __init__(self, filename=QString(), dataset=None):
     super(OutcomesModel, self).__init__()
     self.dataset = dataset
     self.current_outcome = None
     self.outcome_list = self.dataset.get_outcome_names()
コード例 #40
0
    def updateNode(self, index=QModelIndex()):
        elem = self.node.toElement()
        mindex = self.view.currentIndex() if not index.isValid() else index

        attributeMap = self.node.attributes()
        for i in range(attributeMap.count()):
            attributeMap.removeNamedItem(attributeMap.item(0).nodeName())
        elem.setAttribute(QString("name"), QString(self.name))
        if self.nexusType:
            elem.setAttribute(QString("type"), QString(self.nexusType))

        self.replaceText(mindex, unicode(self.value))

        doc = self.node.firstChildElement(QString("doc"))
        if not self.doc and doc and doc.nodeName() == "doc":
            self.removeElement(doc, mindex)
        elif self.doc:
            newDoc = self.root.createElement(QString("doc"))
            newText = self.root.createTextNode(QString(self.doc))
            newDoc.appendChild(newText)
            if doc and doc.nodeName() == "doc":
                self.replaceElement(doc, newDoc, mindex)
            else:
                self.appendElement(newDoc, mindex)

        dimens = self.node.firstChildElement(QString("dimensions"))
        if not self.dimensions and dimens \
                and dimens.nodeName() == "dimensions":
            self.removeElement(dimens, mindex)
        elif self.dimensions:
            newDimens = self.root.createElement(QString("dimensions"))
            newDimens.setAttribute(QString("rank"),
                                   QString(unicode(self.rank)))
            dimDefined = True
            for i in range(min(self.rank, len(self.dimensions))):
                if self.dimensions[i] is None:
                    dimDefined = False
            if dimDefined:
                for i in range(min(self.rank, len(self.dimensions))):
                    dim = self.root.createElement(QString("dim"))
                    dim.setAttribute(QString("index"), QString(unicode(i + 1)))
                    if "$datasources." not in unicode(self.dimensions[i]):

                        dim.setAttribute(QString("value"),
                                         QString(unicode(self.dimensions[i])))
                    else:
                        dsText = self.root.createTextNode(
                            QString(unicode(self.dimensions[i])))
                        dstrategy = self.root.createElement(
                            QString("strategy"))
                        dstrategy.setAttribute(QString("mode"),
                                               QString(unicode("CONFIG")))
                        dim.appendChild(dsText)
                        dim.appendChild(dstrategy)
                    newDimens.appendChild(dim)

            if dimens and dimens.nodeName() == "dimensions":
                self.replaceElement(dimens, newDimens, mindex)
            else:
                self.appendElement(newDimens, mindex)
コード例 #41
0
 def __init__(self, filename=QString(), dataset=None, outcome=None, follow_up=None):
     super(TXGroupsModel, self).__init__()
     self.dataset = dataset
     self.current_outcome = outcome
     self.current_follow_up = follow_up
     self.refresh_group_list(outcome, follow_up)
コード例 #42
0
 def __call__(self, where=QString(), args=[]):
     return self.ListType(self.TableSchema.table().select(where, args))
コード例 #43
0
    def setFromNode(self, node=None):
        if node:
            ## defined in NodeDlg
            self.node = node
        if not self.node:
            return
        attributeMap = self.node.attributes()

        self.name = unicode(attributeMap.namedItem("name").nodeValue()
                            if attributeMap.contains("name") else "")
        self.nexusType = unicode(attributeMap.namedItem("type").nodeValue()
                                 if attributeMap.contains("type") else "")

        text = DomTools.getText(self.node)
        self.value = unicode(text).strip() if text else ""

        dimens = self.node.firstChildElement(QString("dimensions"))
        attributeMap = dimens.attributes()

        self.dimensions = []
        self._dimensions = []
        if attributeMap.contains("rank"):
            try:
                self.rank = int(attributeMap.namedItem("rank").nodeValue())
                if self.rank < 0:
                    self.rank = 0
            except:
                self.rank = 0
        else:
            self.rank = 0
        if self.rank > 0:
            child = dimens.firstChild()
            while not child.isNull():
                if child.isElement() and child.nodeName() == "dim":
                    attributeMap = child.attributes()
                    index = None
                    value = None
                    try:
                        if attributeMap.contains("index"):
                            index = int(attributeMap.namedItem(
                                "index").nodeValue())
                        if attributeMap.contains("value"):
                            value = str(attributeMap.namedItem(
                                "value").nodeValue())
                    except:
                        pass
                    text = DomTools.getText(child)
                    if text and "$datasources." in text:
                        value = str(text).strip()
                    if index < 1:
                        index = None
                    if index is not None:
                        while len(self.dimensions) < index:
                            self.dimensions.append(None)
                            self._dimensions.append(None)
                        self._dimensions[index - 1] = value
                        self.dimensions[index - 1] = value

                child = child.nextSibling()

        if self.rank < len(self.dimensions):
            self.rank = len(self.dimensions)
            self.rank = len(self._dimensions)
        elif self.rank > len(self.dimensions):
            self.dimensions.extend(
                [None] * (self.rank - len(self.dimensions)))
            self._dimensions.extend(
                [None] * (self.rank - len(self._dimensions)))

        doc = self.node.firstChildElement(QString("doc"))
        text = DomTools.getText(doc)
        self.doc = unicode(text).strip() if text else ""
コード例 #44
0
    def importXMLFromFile(self):
        ''' NO DOCUMENTATION '''
        assert self.has_selected_item()
        # print "importXMLFromFile"
        # First, prompt the user for the filename to read in
        start_dir = ''
        opus_home = os.environ.get('OPUS_HOME')
        if opus_home:
            start_dir_test = os.path.join(opus_home, 'project_configs')
            if start_dir_test:
                start_dir = start_dir_test
        configDialog = QFileDialog()
        filter_str = QString("*.xml")
        fd = configDialog.getOpenFileName(
            self.manager.base_widget, "Please select an xml file to import...",
            start_dir, filter_str)
        # Check for cancel
        if len(fd) == 0:
            return
        fileName = QString(fd)
        fileNameInfo = QFileInfo(QString(fd))
        fileNameInfoBaseName = fileNameInfo.completeBaseName()
        fileNameInfoName = fileNameInfo.fileName().trimmed()
        fileNameInfoPath = fileNameInfo.absolutePath().trimmed()

        # Pass that in to create a new XMLConfiguration
        xml_config = XMLConfiguration(str(fileNameInfoName),
                                      str(fileNameInfoPath))

        xml_node = xml_config.full_tree.getroot()
        if len(xml_node) == 0:
            raise ValueError('Loading node from XML file failed. '
                             'No node definition found')
        xml_node = xml_node[0]

        parent_node = self.selected_item().node

        allowed_parent_tags = {"tool": ["tool_group"], \
                               "class_module": ["tool"], \
                                    "path_to_tool_modules": ["tool_library"], \
                               "tool_library": ["data_manager"], \
                               "tool_group": ["tool_library"], \
                               "params": ["tool"], \
                               "param": ["params"], \
                               "tool_config": ["tool_set"], \
                               "tool_set": ["tool_sets"], \
                               "tool_sets": ["data_manager"]}
        if parent_node.tag not in allowed_parent_tags[xml_node.tag]:
            MessageBox.error(
                mainwindow=self.view,
                text='Invalid Xml insert',
                detailed_text=
                ('Xml insert of node of type "%s" failed.  '
                 'Invalid type of parent node is "%s" - needs to be one of %s'
                 % (xml_node.tag, parent_node.tag,
                    str(allowed_parent_tags[xml_node.tag]))))
            return

        # Insert it into the parent node from where the user clicked
        name = xml_node.get('name') if xml_node.get('name') is not None else ''
        if self.model.insertRow(0, self.selected_index(), xml_node) is False:
            MessageBox.error(
                mainwindow=self.view,
                text='Xml Insert Failed',
                detailed_text=
                ('Xml insert of node with name "%s" failed - '
                 'most likely because there is already a node with that name.'
                 % name))
            return
コード例 #45
0
 def setSliderLabel(self, value):
     cvalue = QString()
     cvalue = "%2.d" % value
     self.sliderlabel.setText(cvalue)
コード例 #46
0
    def __init__(self, parent=None):
        # pylint: disable=unused-argument,super-on-old-class
        super(DimensionSelectorWidget, self).__init__()
        #validators
        self.doubleValidator = EmptyOrDoubleValidator(self)
        self.positiveDoubleValidator = QtGui.QDoubleValidator(self)
        self.positiveDoubleValidator.setBottom(1e-10)
        self.V3DValidator = V3DValidator(self)
        #labels
        self._labelBasis = QtGui.QLabel('    Projection Basis')
        self._labelBasis1 = QtGui.QLabel('    Projection u')
        self._labelBasis2 = QtGui.QLabel('    Projection v')
        self._labelBasis3 = QtGui.QLabel('    Projection w')
        self._labelMin = QtGui.QLabel('Min')
        self._labelMax = QtGui.QLabel('Max')
        self._labelStep = QtGui.QLabel('Step')
        #lineedits
        self._editBasis1 = QtGui.QLineEdit()
        self._editBasis1.setValidator(self.V3DValidator)
        self._editBasis2 = QtGui.QLineEdit()
        self._editBasis2.setValidator(self.V3DValidator)
        self._editBasis3 = QtGui.QLineEdit()
        self._editBasis3.setValidator(self.V3DValidator)
        self._editMin1 = QtGui.QLineEdit()
        self._editMin1.setValidator(self.doubleValidator)
        self._editMin2 = QtGui.QLineEdit()
        self._editMin2.setValidator(self.doubleValidator)
        self._editMin3 = QtGui.QLineEdit()
        self._editMin3.setValidator(self.doubleValidator)
        self._editMin4 = QtGui.QLineEdit()
        self._editMin4.setValidator(self.doubleValidator)
        self._editMax1 = QtGui.QLineEdit()
        self._editMax1.setValidator(self.doubleValidator)
        self._editMax2 = QtGui.QLineEdit()
        self._editMax2.setValidator(self.doubleValidator)
        self._editMax3 = QtGui.QLineEdit()
        self._editMax3.setValidator(self.doubleValidator)
        self._editMax4 = QtGui.QLineEdit()
        self._editMax4.setValidator(self.doubleValidator)
        self._editStep1 = QtGui.QLineEdit()
        self._editStep1.setValidator(self.positiveDoubleValidator)
        self._editStep2 = QtGui.QLineEdit()
        self._editStep2.setValidator(self.positiveDoubleValidator)
        self._comboDim1 = QtGui.QComboBox(self)
        self._comboDim2 = QtGui.QComboBox(self)
        self._comboDim3 = QtGui.QComboBox(self)
        self._comboDim4 = QtGui.QComboBox(self)
        self._comboDim4.setMinimumContentsLength(12)
        #basis
        self.basis = ['1,0,0', '0,1,0', '0,0,1']
        #default values
        self.dimNames = ['[H,0,0]', '[0,K,0]', '[0,0,L]', 'DeltaE']
        self.dimMin = [-numpy.inf, -numpy.inf, -numpy.inf, -numpy.inf]
        self.dimMax = [numpy.inf, numpy.inf, numpy.inf, numpy.inf]
        self.dimStep = [0.05, 0.05, 0.05, 1]
        self.dimIndex = [0, 1, 2, 3]
        #layout
        grid = QtGui.QGridLayout()
        self.setLayout(grid)
        grid.addWidget(self._labelMin, 0, 1)
        grid.addWidget(self._labelMax, 0, 2)
        grid.addWidget(self._labelStep, 0, 3)
        grid.addWidget(self._labelBasis, 0, 4, 1, 2)
        grid.addWidget(self._comboDim1, 1, 0)
        grid.addWidget(self._editMin1, 1, 1)
        grid.addWidget(self._editMax1, 1, 2)
        grid.addWidget(self._editStep1, 1, 3)
        grid.addWidget(self._labelBasis1, 1, 4)
        grid.addWidget(self._editBasis1, 1, 5)
        grid.addWidget(self._comboDim2, 2, 0)
        grid.addWidget(self._editMin2, 2, 1)
        grid.addWidget(self._editMax2, 2, 2)
        grid.addWidget(self._editStep2, 2, 3)
        grid.addWidget(self._labelBasis2, 2, 4)
        grid.addWidget(self._editBasis2, 2, 5)
        grid.addWidget(self._comboDim3, 3, 0)
        grid.addWidget(self._editMin3, 3, 1)
        grid.addWidget(self._editMax3, 3, 2)
        grid.addWidget(self._labelBasis3, 3, 4)
        grid.addWidget(self._editBasis3, 3, 5)
        grid.addWidget(self._comboDim4, 4, 0)
        grid.addWidget(self._editMin4, 4, 1)
        grid.addWidget(self._editMax4, 4, 2)

        self._editBasis1.setText(QString(self.basis[0]))
        self._editBasis2.setText(QString(self.basis[1]))
        self._editBasis3.setText(QString(self.basis[2]))
        self.updateCombo()
        self.updateGui()
        #connections
        self._editBasis1.textEdited.connect(self.basisChanged)
        self._editBasis2.textEdited.connect(self.basisChanged)
        self._editBasis3.textEdited.connect(self.basisChanged)
        self._editMin1.textEdited.connect(self.limitsChanged)
        self._editMin2.textEdited.connect(self.limitsChanged)
        self._editMin3.textEdited.connect(self.limitsChanged)
        self._editMin4.textEdited.connect(self.limitsChanged)
        self._editMax1.textEdited.connect(self.limitsChanged)
        self._editMax2.textEdited.connect(self.limitsChanged)
        self._editMax3.textEdited.connect(self.limitsChanged)
        self._editMax4.textEdited.connect(self.limitsChanged)
        self._editStep1.textEdited.connect(self.stepChanged)
        self._editStep2.textEdited.connect(self.stepChanged)
        self._comboDim1.currentIndexChanged.connect(self.comboChanged)
        self._comboDim2.currentIndexChanged.connect(self.comboChanged)
        self._comboDim3.currentIndexChanged.connect(self.comboChanged)
        self._comboDim4.currentIndexChanged.connect(self.comboChanged)
        self.inhibitSignal = False
        self.updateChanges()
コード例 #47
0
 def removeOverlay(self):
     self.tray.setOverlayIconByName(QString(""))
     self.tray.setOverlayIconByPixmap(Qt.QIcon())
コード例 #48
0
def FloatToQString(value):
    if numpy.isfinite(value):
        return QString(format(value, '.3f'))
    else:
        return QString("")
コード例 #49
0
 def setOverlayName(self):
     self.tray.setOverlayIconByPixmap(Qt.QIcon())
     self.tray.setOverlayIconByName(QString("dialog-error"))
コード例 #50
0
 def add(self, skeleton):
     """add tis parameter to the skeleton"""
     self.item = skeleton.addItemString(self.name, self.value,
                                        QString(self.default or ''))
コード例 #51
0
ファイル: dialogs.py プロジェクト: hj91/cspace
            self.permissions.savePermissions()
            self.savedData = curData
            self._updateUI()
            return
        except BadUserInRuleError, ue:
            line = ue.lineNumber
            errorMsg = 'Invalid user \'%s\'' % ue.user
        except BadServiceInRuleError, se:
            line = se.lineNumber
            errorMsg = 'Invalid service \'%s\'' % se.service
        except BadRuleError, e:
            line = e.lineNumber
            errorMsg = 'Invalid rule'
        errorMsg = 'Error: %s' % errorMsg
        errorMsg = QtCore.Qt.escape(errorMsg)
        errorMsg = QString('<font color=red><b>%1</b></font>').arg(errorMsg)
        self.ui.status.setText(errorMsg)

        def selectLine(line):
            count = 0
            start = 0
            while count + 1 < line:
                start = curData.find('\n', start)
                if start < 0: return
                count += 1
                start += 1
            end = curData.find('\n', start)
            if end < 0:
                end = len(curData)
            c = self.ui.permissions.textCursor()
            c.setPosition(start, QTextCursor.MoveAnchor)
コード例 #52
0
 def usePixmap(self):
     self.tray.setIconByName(QString(""))
     self.tray.setIconByPixmap(Qt.QIcon.fromTheme("accessories-calculator"))
コード例 #53
0
    def createEditor(self, parent_view, option, index):
        ''' PyQt API Method -- See the PyQt documentation for a description '''

        default_editor = QItemDelegate.createEditor(self, parent_view, option, index)
        if not index.isValid():
            return default_editor

        item = index.internalPointer()
        node = item.node

        # editing of left hand columns is handled by dialogs etc, don't allow direct editing
        if index.column() == 0:
            pass
        elif index.column() == 1:
            # Combobox for multiple choices
            editor = default_editor

# CK delete the following comment if the xml schema is complete and does'nt contain any 'choices'

#            if node.get('choices') is not None:
#                editor = QComboBox(parent_view)
#                choices = [s.strip() for s in node.get('choices').split('|')]
#                for item in choices:
#                    editor.addItem(item)
#                # Select the current choice
#                choice = node.text.strip() if node.text else ''
#                if choice in choices:
#                    editor.setCurrentIndex(choices.index(choice))

            # Create and prepare an editor for the node

            # Select database connection
            if node.get('type') == 'db_connection_hook':
                editor = QComboBox(parent_view)
                # Get connection names from database_server_connections.xml
                choices = get_db_connection_names()
                # Populate the editor with the choices
                for i in choices:
                    editor.addItem(i)
            # Select files and folders
            elif node.get('type') in ('file_path', 'dir_path'):
                editor_file = QFileDialog()
                filter_str = QString("*.*")
                editor_file.setFilter(filter_str)
                editor_file.setAcceptMode(QFileDialog.AcceptOpen)
                current_value = \
                    index.model().data(index, Qt.DisplayRole).toString()
                if node.get('type') == 'file_path':
                    method = editor_file.getOpenFileName
                    title = 'Please select a file...'
                else:
                    method = editor_file.getExistingDirectory
                    title = 'Please select a directory...'
                fd = method(self.parent_view, title, current_value)

                # Check for cancel
                if len(fd) == 0:
                    new_value = current_value
                else:
                    new_value = QString(fd)
                editor = QItemDelegate.createEditor(self, self.parent_view,
                                                    option, index)
                if type(editor) == QLineEdit:
                    editor.setText(new_value)
            # Edit passwords
            elif node.get('type') == 'password':
                editor.setText(str(node.text or ''))
                editor.setStyleSheet('QLineEdit { background-color: red }')
                editor.setEchoMode(QLineEdit.PasswordEchoOnEdit)
            # Use default editor
            else:
                if type(editor) == QLineEdit:
                    txt = index.model().data(index, Qt.DisplayRole).toString()
                    editor.setText(txt)
            return editor
コード例 #54
0
 def setZoomLabel(self, value):
     zvalue = QString("Scale factor : ")
     zvalue += "%2.d" % value
     self.zoomlabel.setText(zvalue)
コード例 #55
0
 def rangeDisplay(self, box, val):
     drange = self._getCommonMetadataValue("drange")
     if drange is None:
         return QString("")
     return QDoubleSpinBox.textFromValue(box, val)
コード例 #56
0
 def __init__(self,parent=None):
     # pylint: disable=unused-argument,super-on-old-class
     super(InstrumentSetupWidget,self).__init__()
     metrics=QtGui.QFontMetrics(self.font())
     self.signaldict=dict()
     #instrument selector
     self.instrumentList=['ARCS','CNCS','DNS','EXED','FOCUS','HET','HYSPEC','LET','MAPS','MARI','MERLIN','SEQUOIA']
     self.combo = QtGui.QComboBox(self)
     for inst in self.instrumentList:
         self.combo.addItem(inst)
     defaultInstrument=mantid.config.getInstrument().name()
     if defaultInstrument in self.instrumentList:
         self.instrument=defaultInstrument
         self.combo.setCurrentIndex(self.instrumentList.index(defaultInstrument))
     else:
         self.instrument=self.instrumentList[0]
         self.combo.setCurrentIndex(0)
     self.signaldict['instrument']=self.instrument
     self.labelInst=QtGui.QLabel('Instrument')
     #S2 and Ei edits
     self.S2=0.0
     self.Ei=10.0
     self.signaldict['S2']=self.S2
     self.signaldict['Ei']=self.Ei
     self.validatorS2=QtGui.QDoubleValidator(-90.,90.,5,self)
     self.validatorEi=QtGui.QDoubleValidator(1.,10000.,5,self)
     self.labelS2=QtGui.QLabel('S2')
     self.labelEi=QtGui.QLabel('Incident Energy')
     self.editS2=QtGui.QLineEdit()
     self.editS2.setValidator(self.validatorS2)
     self.editEi=QtGui.QLineEdit()
     self.editEi.setValidator(self.validatorEi)
     self.editS2.setText(QString(format(self.S2,'.2f')))
     self.editEi.setText(QString(format(self.Ei,'.1f')))
     self.editEi.setFixedWidth(metrics.width("8888.88"))
     self.editS2.setFixedWidth(metrics.width("888.88"))
     #fast checkbox
     self.fast=QtGui.QCheckBox("Fast",self)
     self.fast.toggle()
     self.updateFast()
     #masking
     self.labelMask=QtGui.QLabel('Mask file')
     self.editMask=QtGui.QLineEdit()
     self.buttonMask=QtGui.QPushButton("LoadMask")
     #goniometer settings
     self.labelGon=QtGui.QLabel('Goniometer')
     self.tableViewGon = QtGui.QTableView(self)
     self.tableViewGon.setMinimumWidth(metrics.width("Minimum ")*8)
     self.tableViewGon.horizontalHeader().setResizeMode(QtGui.QHeaderView.Stretch)
     self.tableViewGon.verticalHeader().setResizeMode(QtGui.QHeaderView.Stretch)
     self.goniometerNames=['psi','gl','gs']
     self.goniometerDirections=['0,1,0','0,0,1','1,0,0']
     self.goniometerRotationSense=[1,1,1]
     self.goniometerMin=[0.,0.,0.]
     self.goniometerMax=[0.,0.,0.]
     self.goniometerStep=[1.,1.,1.]
     values={'gonioLabels':self.goniometerNames,'gonioDirs':self.goniometerDirections,'gonioSenses':self.goniometerRotationSense,
             'gonioMinvals':self.goniometerMin,'gonioMaxvals':self.goniometerMax,'gonioSteps':self.goniometerStep}
     self.goniomodel = GonioTableModel(values,self)
     self.tableViewGon.setModel(self.goniomodel)
     self.tableViewGon.update()
     self.signaldict.update(values)
     #goniometer figure
     self.figure=Figure(figsize=(2,3))
     self.figure.patch.set_facecolor('white')
     self.canvas=FigureCanvas(self.figure)
     self.gonfig=None
     self.updateFigure()
     #layout
     self.gridI = QtGui.QGridLayout()
     self.gridI.addWidget(self.labelInst,0,0)
     self.gridI.addWidget(self.combo,0,1)
     self.gridI.addWidget(self.labelEi,0,2)
     self.gridI.addWidget(self.editEi,0,3)
     self.gridI.addWidget(self.labelS2,0,4)
     self.gridI.addWidget(self.editS2,0,5)
     self.gridI.addWidget(self.fast,0,6)
     self.setLayout(QtGui.QHBoxLayout())
     self.rightside=QtGui.QVBoxLayout()
     self.maskLayout=QtGui.QHBoxLayout()
     self.maskLayout.addWidget(self.labelMask)
     self.maskLayout.addWidget(self.editMask)
     self.maskLayout.addWidget(self.buttonMask)
     self.layout().addLayout(self.rightside)
     self.rightside.addLayout(self.gridI)
     self.rightside.addLayout(self.maskLayout)
     self.rightside.addWidget(self.labelGon)
     self.rightside.addWidget(self.tableViewGon)
     self.layout().addWidget(self.canvas)
     #connections
     self.editS2.textEdited.connect(self.checkValidInputs)
     self.editMask.textEdited.connect(self.setMaskFile)
     self.combo.activated[str].connect(self.instrumentSelected)
     self.fast.stateChanged.connect(self.updateFast)
     self.buttonMask.clicked.connect(self.loadMaskFromFile)
     self.editEi.textEdited.connect(self.checkValidInputs)
     #call instrumentSelected once
     self.instrumentSelected(self.instrument)
     #connect goniometer change with figure
     self.goniomodel.changed.connect(self.updateFigure)
     self.updateAll()
コード例 #57
0
  def data(self, index, role): #XXX
    attributes = self.availableAttributes()
    if not index.isValid():
      return QVariant()
    if index.row() > len(self._list) or index.row() < 0:
      return QVariant()
    try:
      timeLineNode = self._rows[index.row()]
      node = timeLineNode.node()
    except:
      return QVariant()
    if role == Qt.DisplayRole :
      attrpath = str(unicode(attributes[index.column()]).encode('utf-8'))
      if attrpath == "name":
          return QVariant(QString.fromUtf8(node.name()))

      elif attrpath == "time":
         try:
           return QVariant(QString.fromUtf8(str(timeLineNode.attribute())))
         except:
           return QVariant()
      elif attrpath == "time attribute":
          return QVariant(QString.fromUtf8(timeLineNode.attributeName()))

      elif attrpath == "size":
          return QVariant(node.size())
      elif attrpath == "extension":
          return QVariant(QString.fromUtf8(node.extension()))
      elif attrpath == "path":
          if isinstance(node, VLink):
            return QVariant(QString.fromUtf8(node.linkPath()))
          else:
            return QVariant(QString.fromUtf8(node.path()))
      elif attrpath == "absolute":
          if isinstance(node, VLink):
            return QVariant(QString.fromUtf8(node.linkAbsolute()))
          else:
           return QVariant(QString.fromUtf8(node.absolute()))
      elif attrpath == "module":
	  if node.fsobj():
            return QVariant(QString.fromUtf8(node.fsobj().name))
          return QVariant()
      elif attrpath == "has children":
          if isinstance(node, VLink):
            return QVariant(node.linkHasChildren())
          else:
            return QVariant(node.hasChildren())
      elif attrpath == "child count":
          if isinstance(node, VLink):
            return QVariant(node.linkChildCount())
          else:
            return QVariant(node.childCount())
      elif attrpath == "is deleted":
          return QVariant(node.isDeleted())
      elif attrpath == "tags":
          #Special case tag use a delegate to draw boxes
          return QVariant()
      else:
	try :
          val = node.attributesByName(attrpath, ABSOLUTE_ATTR_NAME)
	except Exception as e:
	   print "NodeListModel data can't get attribute " + attrpath + " by name " + str(e)
	   return QVariant()
        if len(val) == 1:
          if val[0].type() == typeId.DateTime:
            dateTime = val[0].value()
            if dateTime:
              return QVariant(str(dateTime))
          elif val[0].type() == typeId.String:
            return QVariant(QString.fromUtf8(val[0].value()))
          else:
            return QVariant(val[0].value())
        else:
          return QVariant()
    if role == Qt.ToolTipRole :
      return QVariant(QString.fromUtf8(node.name()))

    # Display icons
    if (role == Qt.DecorationRole) and (attributes[index.column()] == "name"):
      pixmap = None
      if self._thumb:
	if self.thumbnailer.isThumbnailable(node):
	  pixmap = self.thumbnailer.generate(node)
          if pixmap is None:
	    pixmap = QPixmap(":file_temporary.png")
      if not pixmap:
        pixmap = self.getIconPixmap(node)
        if not pixmap:
          pixmap = QPixmap(node.icon())
        
        if isinstance(node, VLink):
          pixmap = pixmap.scaled(QSize(128, 128), Qt.KeepAspectRatio)
          painter = QPainter(pixmap)
          linkPixmap = QPixmap(":vlink") 
          painter.drawPixmap(0, 0, linkPixmap)
          painter.end()

	elif node.hasChildren():
          try:
            pfsobj = node.children()[0].fsobj().this
          except AttributeError:
  	    pfsobj = None
          try:
            nfsobj = node.fsobj().this
          except AttributeError:
	    nfsobj = None
          if pfsobj != nfsobj:
            pixmap = pixmap.scaled(QSize(128, 128), Qt.KeepAspectRatio)
            painter = QPainter(pixmap)
            rootPixmap = QPixmap(":root")
            painter.drawPixmap(0, 0, rootPixmap)
            painter.end()
      return QVariant(QIcon(pixmap))
	
    if role == Qt.BackgroundRole:
      if index.row() == self.activeSelection():
        palette = QPalette().color(QPalette.Highlight)
        return QVariant(QColor(palette))
    if role == Qt.ForegroundRole:
      if index.row() == self.activeSelection():
        palette = QPalette().color(QPalette.HighlightedText)
        return QVariant(QColor(palette))
      if node.isDeleted():
        return  QVariant(QColor(Qt.red))

    if (role == Qt.CheckStateRole) and (attributes[index.column()] == "name"):
      if node.uid() in self.selection.get():
        return Qt.Checked
      else:
        return Qt.Unchecked
    return QVariant()
コード例 #58
0
 def __init__(self, filename=QString(), dataset=None):
     super(CovariatesModel, self).__init__()
     self.dataset = dataset
     self.update_covariates_list()
コード例 #59
0
    def toMarkdown(self):
        references = ''
        i = 1
        # doc = QString() # the full document
        doc = g.u('')
        block = self.document().begin(
        )  # block is like a para; text fragment is sequence of same char format
        while block.isValid():
            #print "block=",block.text()
            if block.blockFormat().nonBreakableLines():
                doc += '    ' + block.text() + '\n'
            #elif block.textList():
            #textList = block.textList()
            #print block.textList().count()
            #print g.u(block.textList().itemText(block))
            #print block.textList().itemNumber(block)
            #print block.textList().item(block.textList().itemNumber(block)).text()
            #doc += textList.itemText(block) + ' ' + textList.item(textList.itemNumber(block)).text() + '\n\n'
            else:
                if block.textList():
                    doc += '  ' + block.textList().itemText(block) + ' '
                # para = QString()
                para = g.u('')
                iterator = block.begin()
                while iterator != block.end():
                    fragment = iterator.fragment()
                    if fragment.isValid():
                        char_format = fragment.charFormat()
                        # pylint: disable=no-member
                        # EKR: I'm not sure whether this warning is valid.
                        # I'm going to kill it because this is an experimental plugin.
                        text = g.u(Qt.escape(fragment.text()))
                        # turns chars like < into entities &lt;
                        font_size = char_format.font().pointSize()
                        # a fragment can only be an anchor, italics or bold
                        if char_format.isAnchor():
                            ref = text if text.startswith(
                                'http://') else 'http://{0}'.format(text)
                            # too lazy right now to check if URL has already been referenced but should
                            references += "  [{0}]: {1}\n".format(i, ref)
                            text = "[{0}][{1}]".format(text, i)
                            i += 1
                        elif font_size > 10:
                            if font_size > 15:
                                text = '#{0}'.format(text)
                            elif font_size > 12:
                                text = '##{0}'.format(text)
                            else:
                                text = '###{0}'.format(text)
                        elif char_format.fontFixedPitch(
                        ):  #or format.fontFamily=='courier':
                            text = QString("`%1`").arg(text)
                        elif char_format.fontItalic():
                            text = QString("*%1*").arg(text)
                        elif char_format.fontWeight(
                        ) > QFont.Normal:  #font-weight:600; same as for an H1; H1 font-size:xx-large; H1 20; H2 15 H3 12
                            text = QString("**%1**").arg(text)

                        para += text
                    iterator += 1
                doc += para + '\n\n'
            block = block.next()
        return doc + references
コード例 #60
-1
ファイル: goto.py プロジェクト: halbbob/dff
 def checkLocation(self, str, base, type):
     offset = QString(str)
     off = offset.toULongLong(base)
     if off[1]:
         if type == "Offset":
             if off[0] < self.heditor.filesize:
                 return off[0]
             else:
                 msg = MessageBoxError(self.heditor, "Offset value too high")
                 msg.exec_()
                 return -1
         elif type == "Page":
             if off[0] < self.heditor.pages:
                 return off[0]
             else:
                 msg = MessageBoxError(self.heditor, "Page value too high")
                 msg.exec_()
                 return -1
         elif type == "Block":
             if off[0] < self.heditor.blocks:
                 return off[0]
             else:
                 msg = MessageBoxError(self.heditor, "Block value too high")
                 msg.exec_()
                 return -1
         else:
             return -1
     else:
         msg = MessageBoxError(self.heditor, "Base conversion Error")
         msg.exec_()
         return -1
     return -1