[英]PyQt5: How to set the hint text/picture to items in QTreeWidget?
我想在下圖中解釋我的問題。
在我的應用程序中有一個QDockWidget
,其中包含一個QTreeWidget
。 QTreeWidget
某些項目具有長文本。
通過運行該應用程序,僅顯示這些長文本的一部分。
我想問一下如何顯示一個彈出窗口,其中顯示了項目的全文。 並且,如果不是那么困難,如何在此彈出窗口中顯示小圖片? (可以想象,我在上圖中繪制了彈出窗口。)
這是代碼:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class MyApp(QMainWindow):
def __init__(self):
super(MyApp, self).__init__()
self.setWindowTitle("test")
self.setFixedWidth(900)
self.setFixedHeight(300)
self.tabs = QTabWidget()
self.setCentralWidget(self.tabs)
self.initUI()
self.show()
def createTreeWidget(self):
self.tree = QTreeWidget()
self.tree.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
self.tree.setColumnCount(1)
self.tree.setHeaderHidden(True)
# add items
self.t_A = QTreeWidgetItem(self.tree)
self.t_A.setText(0, "A")
# add items
self.t_B = QTreeWidgetItem(self.tree); self.t_B.setText(0, "B")
self.t_B1 = QTreeWidgetItem(self.t_B) ; self.t_B1.setText(0, "Long long long text: show hint text, show pic B1")
self.t_B2 = QTreeWidgetItem(self.t_B) ; self.t_B2.setText(0, "Long long long text: show hint text, show pic B2")
self.t_B3 = QTreeWidgetItem(self.t_B) ; self.t_B3.setText(0, "Long long long text: show hint text, show pic B3")
self.t_B4 = QTreeWidgetItem(self.t_B) ; self.t_B4.setText(0, "Long long long text: show hint text, show pic B4")
self.t_B5 = QTreeWidgetItem(self.t_B) ; self.t_B5.setText(0, "Long long long text: show hint text, show pic B5")
self.t_B6 = QTreeWidgetItem(self.t_B) ; self.t_B6.setText(0, "Long long long text: show hint text, show pic B6")
self.t_B7 = QTreeWidgetItem(self.t_B) ; self.t_B7.setText(0, "Long long long text: show hint text, show pic B7")
self.t_B8 = QTreeWidgetItem(self.t_B) ; self.t_B8.setText(0, "Long long long text: show hint text, show pic B8")
self.t_B9 = QTreeWidgetItem(self.t_B) ; self.t_B9.setText(0, "Long long long text: show hint text, show pic B9")
# add items
self.t_C = QTreeWidgetItem(self.tree) ; self.t_C.setText(0, "C")
self.t_C1 = QTreeWidgetItem(self.t_C) ; self.t_C1.setText(0, "C1")
self.t_C2 = QTreeWidgetItem(self.t_C) ; self.t_C2.setText(0, "C2")
self.tree.expandAll()
return self.tree
def createDock(self):
self.dock = QDockWidget("Dock", self)
self.dock.setFeatures(QDockWidget.NoDockWidgetFeatures)
self.dock.setAllowedAreas(Qt.LeftDockWidgetArea)
self.dock.setWidget(self.createTreeWidget())
return self.dock
def initUI(self):
self.addDockWidget(Qt.LeftDockWidgetArea, self.createDock())
self.statusBar().showMessage('Message in statusbar.')
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyApp()
sys.exit(app.exec_())
謝謝您的幫助!
您可以使用具有html格式的setToolTip函數。
嘗試類似的東西:
self.t_B1.setToolTip(0, '<b>Long long long text: show hint text, show pic B1</b><br><img src="%s">' % filename)
對於每個QTreeWidgetItems。
它應該執行您想要的。
希望對您有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.