gpt4 book ai didi

qt - 在 QTableView 中,如何使水平标题单元格显示垂直文本?

转载 作者:行者123 更新时间:2023-12-05 02:23:22 34 4
gpt4 key购买 nike

我希望使 QTableView 中的水平标题单元格从上到下(即垂直)显示文本,我该怎么做?

示例 PyQt5 应用程序显示带有水平标题的 QTableView,在正常方向显示文本:

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sys

class TableModel(QAbstractTableModel):
def __init__(self, parent):
super(TableModel, self).__init__(parent)

def headerData(self, section, orientation, role):
if orientation != Qt.Horizontal:
return
if role != Qt.DisplayRole:
return

return 'Header Data'

def data(self, index, role):
if role != Qt.DisplayRole:
return

return 'Row Data'

def rowCount(self, parent):
return 1

def columnCount(self, parent):
return 1


class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()

main_widget = QWidget(self)
self.setCentralWidget(main_widget)
layout = QVBoxLayout(main_widget)

view = QTableView(main_widget)
view.horizontalHeader().setVisible(True)
view.verticalHeader().setVisible(False)
layout.addWidget(view)
model = TableModel(view)
view.setModel(model)
view.resizeColumnsToContents()

app = QApplication(sys.argv)
window = Window()
window.show()
app.exec_()

最佳答案

简单 use of delegate will not work here .

你需要继承QHeaderView并覆盖 paintSection .
在实现过程中,您需要:

  • 旋转和平移画家
  • 计算将考虑上述变换的新矩形
  • 用新值调用 paintSection 的旧实现
  • 恢复画家状态(反向转换)。

关于qt - 在 QTableView 中,如何使水平标题单元格显示垂直文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22631569/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com