Exemplo n.º 1
0
def MolToPixmap(mol: Mol, size: QSize):
    if size.isNull() or mol is None:
        return QPixmap()

    if not mol.GetNumConformers():
        rdDepictor.Compute2DCoords(mol)

    svg_drawer = rdMolDraw2D.MolDraw2DSVG(size.width(), size.height())
    svg_drawer.drawOptions().clearBackground = False
    svg_drawer.DrawMolecule(mol)
    svg_drawer.FinishDrawing()
    drawing_text = svg_drawer.GetDrawingText()
    return SvgToPixmap(drawing_text, size)
Exemplo n.º 2
0
def SvgToPixmap(svg_data: Union[str, bytes], size: QSize):
    if size.isNull():
        return QPixmap()

    svg_renderer = QSvgRenderer()
    if isinstance(svg_data, bytes):
        svg_renderer.load(svg_data)
    else:
        svg_renderer.load(svg_data.encode('utf-8'))
    pixmap = QPixmap(size)
    painter = QPainter()

    pixmap.fill(Qt.transparent)
    painter.begin(pixmap)
    svg_renderer.render(painter)
    painter.end()

    return pixmap
Exemplo n.º 3
0
def InchiToPixmap(inchi: str, size: QSize):
    if size.isNull() or not inchi:
        return QPixmap()

    return MolToPixmap(MolFromInchi(inchi), size)
Exemplo n.º 4
0
def SmilesToPixmap(smiles: str, size: QSize):
    if size.isNull() or not smiles:
        return QPixmap()

    return MolToPixmap(MolFromSmiles(smiles), size)