我正在尝试使PyQt5表格视图的每个单元格都适合,因此在文本末尾没有...
我尝试过:
private static string userLogin;
public static void SetUser()
{
userLogin = LoginName.Text; // with an uppercase T!
}
但这没用
我最后的问题是如何使单元格的文本适合单元格,以便可以看到整个文本
答案 0 :(得分:1)
仅在将QTableView设置为以下模型后,我才尝试使用您的代码:
这对我有用:
table_model = PandasModel(transactions)
self.MyTable.setModel(table_model)
self.MyTable.resizeColumnsToContents()
如上所述,我将代码设置为TableView后就将其添加到TableView中,并且可以正常工作。能否检查一下是否在填充表格后将其设置为调整大小?
编辑:PandasModel是一个自定义类,它接受一个数据框并从中创建一个模型。更多信息在这里: Fastest way to populate QTableView from Pandas data frame
答案 1 :(得分:1)
尝试一下:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class Table(QWidget):
def __init__(self, arg=None):
super(Table, self).__init__(arg)
self.setWindowTitle("QTableView")
self.model = QStandardItemModel(4, 4);
self.model.setHorizontalHeaderLabels(['Heading 1','Heading 2','Heading 3','Heading 4'])
for row in range(4):
for column in range(4):
item = QStandardItem("row {}, column {} {} ".format(row, column, "*** "*column))
self.model.setItem(row, column, item)
self.tableView = QTableView()
self.tableView.setModel(self.model)
# +++
self.tableView.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToContents)
self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
dlgLayout = QVBoxLayout();
dlgLayout.addWidget(self.tableView)
self.setLayout(dlgLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
table = Table()
table.show()
sys.exit(app.exec_())