मैं QTextBrowser में किसी छवि के बगल में स्थित टेक्स्ट को लंबवत रूप से कैसे केंद्रित कर सकता हूं? मैंने HTML के लिए this answer का उपयोग करने का प्रयास किया, लेकिन यह इसे सही ढंग से केंद्रित नहीं करता है। हालांकि इस तरह की बड़ी छवियों के लिए काम करता है। मैंने self.textBrowser.setStyleSheet("vertical-align: middle;") का उपयोग करने का भी प्रयास किया लेकिन कोई फायदा नहीं हुआ।

बड़ा आइकन:

enter image description here

छोटा आइकन:

Small icon

मेरा कोड:

import sys
from PyQt5.QtWidgets import *

class Window(QWidget):
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.resize(300, 170)

        self.textBrowser = QTextBrowser(self)
        self.textBrowser.document().setHtml("""
<div>
    <img src="icons/info1.png" style="vertical-align: middle;"/>
    <span style="vertical-align: middle;">Here is some text.</span>
</div>""")

        self.layout = QGridLayout()
        self.layout.addWidget(self.textBrowser)
        self.setLayout(self.layout)

app = QApplication(sys.argv)
win = Window()
win.show()
sys.exit(app.exec_())
2
Anion 14 जुलाई 2017, 11:16
1
doc.qt.io/qt-5/richtext-html-subset. html यहाँ Qt में समर्थित HTML सबसेट का विवरण दिया गया है, ऐसा लगता है कि आपको एक तालिका बनाने की आवश्यकता हो सकती है।
 – 
bakatrouble
14 जुलाई 2017, 11:18
1
मानक क्यूटी लेआउट का उपयोग करने पर भी विचार करें यदि ऐसी कोई सामग्री नहीं है जिसे केवल QTextBrowser में प्रदर्शित किया जा सकता है
 – 
bakatrouble
14 जुलाई 2017, 11:26

1 उत्तर

सबसे बढ़िया उत्तर

आप एचटीएमएल टेबल का उपयोग कर सकते हैं, लंबवत संरेखण ठीक काम करता है

import sys

from PyQt5.QtWidgets import *


class Window(QWidget):
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.resize(300, 170)

        self.textBrowser = QTextBrowser(self)
        self.textBrowser.document().setHtml("""
<table width="100%">
    <tr>
        <td><img height="500" src="icons/info1.png"/></td>
        <td style="vertical-align: middle;">Here is some text.</td>
    </tr>
</table>
""")

        self.layout = QGridLayout()
        self.layout.addWidget(self.textBrowser)
        self.setLayout(self.layout)

app = QApplication(sys.argv)
win = Window()
win.show()
sys.exit(app.exec_())
1
bakatrouble 14 जुलाई 2017, 12:43