QTreeWidget がいくつかの itemwidget で満たされています。その主なウィジェットは QTextEdit になります。私が抱えている問題は、サイズを扱いやすいものに縮小しているようです。サイズ ポリシーを最大に設定する通常の方法は機能しないようです。コード例は次のとおりです。
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class MyMainWindow(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
self.tree = QTreeWidget(self)
self.tree.setColumnCount(1)
self.setCentralWidget(self.tree)
textEdit = QTextEdit()
textEdit.setText("very Small Text Edit")
sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.MinimumExpanding)
textEdit.setSizePolicy(sizePolicy)
itemWidget = QTreeWidgetItem()
itemWidget.setText(0, "")
self.tree.addTopLevelItem(itemWidget)
self.tree.setItemWidget(itemWidget, 0, textEdit)
biggerTextEdit = QTextEdit()
biggerTextEdit.setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas et mauris in felis tempus molestie eu sit amet sapien. Proin dapibus pretium ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque feugiat semper sem a accumsan. Nulla sollicitudin enim quis velit blandit posuere. Ut fringilla vulputate dolor, a accumsan lectus gravida a. Sed convallis facilisis mi et ullamcorper. Integer consectetur aliquet odio sit amet posuere.")
itemWidget2 = QTreeWidgetItem()
itemWidget2.setText(0, "")
self.tree.addTopLevelItem(itemWidget2)
self.tree.setItemWidget(itemWidget2, 0, biggerTextEdit)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
ui = MyMainWindow()
ui.show()
sys.exit(app.exec_())
テキストの長さに関係なく、テキスト編集の高さに影響を与えないように見えることに注意してください。QTextEdit 自体を (少なくとも垂直方向に) 可能な限り最小のサイズにスケーリングするにはどうすればよいでしょうか。前もって感謝します!
編集:QLabel(サイズ変更、表示、ワードワープに関しては、私が望むように機能します)を使用し、テキスト相互作用フラグを編集可能に設定して、この効果をごまかそうとしたことに注意してください。ラベルの編集済みテキストにアクセスする方法があれば、これはほとんど機能します。残念ながら、ラベルで .text() を呼び出すと、元のテキストが生成されます。QLineEdit は複数行またはワードラップにすることはできません。QTextEdit は複雑すぎるようです。
ここで問題になるのは、編集も可能な小さい (300 文字以下) テキスト表示ウィジェットを作成するのに最適なウィジェットは何かということです。