如何确保 Qt table 单元格上的所有数据都可见?
How to make sure all of the data on a Qt table cell is visible?
我目前正在使用 PyQt4 使用 python 2.7。但是,C++ 中的解决方案可能会有所帮助。
我正在使用 QTableWidget 创建一个 table。
table 在我的应用程序上限制了 space,它不是 editable。
table 中的某些单元格包含大量数据。其中一些对用户不可见。
我正在寻找一种解决方案来显示所有单元格的数据,而不会使 table 变大。
我尝试为单元格设置不同的标志,但我一无所获。
我考虑过为单元格设置一个滚动条。可能吗?
为了确保 table 不是 editable 我使用了:
table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
我也试过使用 -
table.item(row_index, col_index).setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
在 table 中的每个单元格上,但它得到了相同的结果 - 没有编辑 + 只有一些数据可见。
图像:
我正在寻找一个选项来确保 (2,2) 处的所有数据,即 "aaaaaa..." 对用户可见。
也许在该单元格内设置垂直滚动条是解决方案?如果可以,怎么做?
一个可能的解决方案是在QHeaderView::ResizeToContents
中设置水平header的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_())
我目前正在使用 PyQt4 使用 python 2.7。但是,C++ 中的解决方案可能会有所帮助。
我正在使用 QTableWidget 创建一个 table。 table 在我的应用程序上限制了 space,它不是 editable。 table 中的某些单元格包含大量数据。其中一些对用户不可见。 我正在寻找一种解决方案来显示所有单元格的数据,而不会使 table 变大。 我尝试为单元格设置不同的标志,但我一无所获。
我考虑过为单元格设置一个滚动条。可能吗?
为了确保 table 不是 editable 我使用了:
table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
我也试过使用 -
table.item(row_index, col_index).setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
在 table 中的每个单元格上,但它得到了相同的结果 - 没有编辑 + 只有一些数据可见。
图像: 我正在寻找一个选项来确保 (2,2) 处的所有数据,即 "aaaaaa..." 对用户可见。 也许在该单元格内设置垂直滚动条是解决方案?如果可以,怎么做?
一个可能的解决方案是在QHeaderView::ResizeToContents
中设置水平header的resizeModefrom 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_())