PyQT - 在 QTableWidget 单元格中显示垂直文本
PyQT - Displaying vertical text in QTableWidget cells
我找到了C++代码来回答我的问题,但我无法使用Python使其工作。 我不知道C++,就像那里的递归...
class VerticalTextDelegate(QtGui.QStyledItemDelegate):
def __init__(self, parent):
super(VerticalTextDelegate, self).__init__()
def paint(self, painter, option, index):
optionCopy = QtGui.QStyleOptionViewItem(option)
rectCenter = QtCore.QPointF(QtCore.QRectF(option.rect).center())
painter.save()
painter.translate(rectCenter.x(), rectCenter.y())
painter.rotate(-90.0)
painter.translate(-rectCenter.x(), -rectCenter.y())
optionCopy.rect = painter.worldTransform().mapRect(option.rect)
# recursion here, I don't understand how it works in C++
# self.paint(painter, optionCopy, index)
self.painter.restore()
def sizeHint(self, option, index):
val = QtGui.QSize(self.sizeHint(option, index))
return QtGui.QSize(val.height(), val.width())
运行代码:
item = QtGui.QTableWidgetItem("test")
self.table_widget.setItem(2, 0, item)
self.table_widget.setItemDelegateForColumn(0,VerticalTextDelegate(self))
如果你看一下你引用的C++
例子,你会发现VerticalTextDelegate::paint
实现基本上是修复QPainter
转换,然后调用基类实现QStyledItemDelegate::paint
。 您也需要这样做(未经测试(...
def paint(self, painter, option, index):
optionCopy = QtGui.QStyleOptionViewItem(option)
rectCenter = QtCore.QPointF(QtCore.QRectF(option.rect).center())
painter.save()
painter.translate(rectCenter.x(), rectCenter.y())
painter.rotate(-90.0)
painter.translate(-rectCenter.x(), -rectCenter.y())
optionCopy.rect = painter.worldTransform().mapRect(option.rect)
# Call the base class implementation
super(VerticalTextDelegate, self).paint(painter, optionCopy, index)
painter.restore()
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 程序崩溃并显示"std::out_of_range"错误
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 从数据库实时显示QT c++中的数据
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 显示错误输出的简单数组排序程序
- QScrollArea:由垂直滚动条引起的水平滚动条
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- PyQT - 在 QTableWidget 单元格中显示垂直文本
- 垂直表显示与每个int大小相关的星星
- 使用 qt 和 opengl、定时精度和垂直同步问题、c++ 显示图像
- 如何知道垂直滚动条何时显示?
- 在C++中垂直和水平显示链表节点
- 如何在一个文件中读取并垂直显示内容,然后在另一个文件中读取并垂直显示内容
- 总是显示wxHtmlWindow垂直滚动条