[英]How to make sure all of the data on a Qt table cell is visible?
我目前正在使用PyQt4使用python 2.7。 但是,C ++中的解決方案可能會有所幫助。
我正在使用QTableWidget創建一個表。 該表在我的應用程序上的空間有限,並且不可編輯。 表中的一些單元格包含大量數據。 其中一些對用戶不可見。 我正在尋找一個解決方案,以顯示所有單元格的數據,而不會使表格更大。 我試圖為細胞設置不同的標志,但它讓我無處可去。
我想為細胞設置一個滾動條。 可能嗎?
為了確保表格不可編輯,我使用了:
table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
我也試過用 -
table.item(row_index, col_index).setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
在表中的每個單元格上,但它得到了相同的結果 - 沒有編輯+只有一些數據是可見的。
IMAGE:我正在尋找一個選項,以確保用戶可以看到(2,2)的所有數據,即“aaaaaa ......”。 也許在該單元格內設置垂直滾動條是解決方案? 如果是這樣,怎么辦?
一種可能的解決方案是在QHeaderView :: ResizeToContents中設置水平標頭的resizeMode
from PyQt4 import QtCore, QtGui
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
w = QtGui.QTableWidget(4, 2)
w.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
header = w.horizontalHeader()
header.setResizeMode(QtGui.QHeaderView.ResizeToContents)
for i in range(w.rowCount()):
for j in range(w.columnCount()):
it = QtGui.QTableWidgetItem("item ({}-{})".format(i, j))
w.setItem(i, j, it)
w.item(2, 1).setText("a" * 20)
w.show()
sys.exit(app.exec_())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.