我有一個QTreeWidget用一些itemwidget填充,其主要部件將是QTextEdit。我遇到的問題似乎正在縮小到可管理的範圍。將尺寸策略設置爲最大值的常用方法似乎不起作用。以下是示例代碼:最小化QTextEdit在QTreeWidgetItem中的大小
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_())
請注意,無論文本的長度是否對textedits的高度沒有任何影響。如何將QTextEdit自身(至少垂直)縮放到儘可能最小的尺寸,並且爲了知識,爲什麼它不像其他許多小部件那樣以這種方式表現?提前致謝!
編輯:我現在應該注意,我試圖通過使用QLabel(在關於調整大小,顯示和字經,作品就像我想),並設置文本的互動標誌來欺騙這種效果編輯。這幾乎是有效的方式來訪問標籤的編輯文本。不幸的是,任何標籤上的.text()調用都會產生原始文本。 QLineEdit不能是多行或單詞換行,QTextEdit看起來過於複雜。
現在的問題是,創建一個可以編輯的小文本顯示小部件(300個字符或更少)的最佳小部件是什麼?
文本的長度對「QTextEdit」的大小沒有任何影響。這就是爲什麼它有一個可滾動的區域,因此它可以顯示任意長度的文本,而不管它的大小。你想讓它根據文本的長度進行調整嗎?確切地說, – Avaris
。理想情況下,如果textedit僅包含一行文本,則僅爲25px的高度。如果有三行文字,則爲75px。這些當然是估計。 – Cryptite