QTableWidget#haierkanban_tablewidget QHeaderView 设置高度后,表格只能显示1行
时间: 2024-03-13 22:47:21 浏览: 15
可能是因为设置的表头高度过大,导致表格不能正常显示所有的行。可以尝试调整表头的高度,或者使用QTableWidget自带的自适应表头高度的功能。具体的做法是,在设置表头时调用setSectionResizeMode方法,并将mode参数设置为QHeaderView::ResizeToContents。例如:
```
QHeaderView *header = ui->haierkanban_tablewidget->horizontalHeader();
header->setSectionResizeMode(QHeaderView::ResizeToContents);
```
这样,表头的高度会自动调整为适应内容的高度,从而保证表格可以正常显示所有的行。
相关问题
Qt qss 设置objectname为haierkanban_tablewidget 的 QTableWidget 背景色透明,表头显示边框白色,item文字悬浮蓝色
您可以使用以下QSS代码实现您的需求:
```css
#haierkanban_tablewidget {
background-color: transparent; /* 设置背景色为透明 */
border: none; /* 去掉边框 */
}
#haierkanban_tablewidget::item:hover {
background-color: blue; /* 设置item悬浮时的背景色为蓝色 */
}
#haierkanban_tablewidget::item:selected {
background-color: #CCE8FE; /* 设置item被选中时的背景色为浅蓝色 */
}
#haierkanban_tablewidget QHeaderView::section {
background-color: white; /* 设置表头的背景色为白色 */
border: 1px solid black; /* 设置表头边框为黑色 */
height: 30px; /* 设置表头高度为30px */
}
#haierkanban_tablewidget QHeaderView::section:hover {
background-color: #F5F5F5; /* 设置表头悬浮时的背景色为浅灰色 */
}
#haierkanban_tablewidget QHeaderView::section:selected {
background-color: #CCE8FE; /* 设置表头被选中时的背景色为浅蓝色 */
}
```
以上代码中,我们使用了 `#haierkanban_tablewidget` 选择器来选中具有 `objectName` 为 `haierkanban_tablewidget` 的 `QTableWidget`,然后按照上面的方式设置样式即可。
如果您的 `QTableWidget` 的 `objectName` 不是 `haierkanban_tablewidget`,请将上面的代码中的 `#haierkanban_tablewidget` 替换为您的 `QTableWidget` 的 `objectName`。
qtablewidget设置页面关闭重新打开后表格仍可以显示
要实现这个功能,你可以将QTableWidget的数据保存到一个文件中,然后在程序启动时读取这个文件并将数据加载到QTableWidget中。你可以在QMainWindow的closeEvent()函数中保存QTableWidget的数据,并在QMainWindow的showEvent()函数中加载数据。以下是一个示例实现:
```python
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.table = QTableWidget(self)
self.table.setColumnCount(2)
self.table.setRowCount(2)
def closeEvent(self, event):
# 保存数据到文件
with open('data.txt', 'w') as f:
for row in range(self.table.rowCount()):
for col in range(self.table.columnCount()):
item = self.table.item(row, col)
f.write(item.text() + '\n')
def showEvent(self, event):
# 从文件加载数据
with open('data.txt', 'r') as f:
for row in range(self.table.rowCount()):
for col in range(self.table.columnCount()):
item = QTableWidgetItem(f.readline().strip())
self.table.setItem(row, col, item)
```
在这个例子中,我们在closeEvent()函数中将QTableWidget的数据保存到data.txt文件中,并在showEvent()函数中从文件中加载数据。这样,即使关闭并重新打开程序,QTableWidget仍然可以显示之前的数据。