是否可以设置QTableView角按钮的文本?

aknuds1

QTableView有一个角按钮,占据了水平和垂直标题之间的交集。单击此按钮将选择表中的所有单元格。我想知道的是,是否可以设置此按钮的文本,如果可以,如何设置?

aknuds1

我已经使用PyQt 5.3实现了一个可行的解决方案,并且花费很少的代码。我的解决方案基于此问题在Qt中心发布的代码

from PyQt5 import QtWidgets, QtCore


class TableView(QtWidgets.QTableView):
    """QTableView specialization that can e.g. paint the top left corner header.
    """
    def __init__(self, nw_heading, parent):
        super(TableView, self).__init__(parent)

        self.__nw_heading = nw_heading
        btn = self.findChild(QtWidgets.QAbstractButton)
        btn.setText(self.__nw_heading)
        btn.setToolTip('Toggle selecting all table cells')
        btn.installEventFilter(self)

        opt = QtWidgets.QStyleOptionHeader()
        opt.text = btn.text()
        s = QtCore.QSize(btn.style().sizeFromContents(
            QtWidgets.QStyle.CT_HeaderSection, opt, QtCore.QSize(), btn).
            expandedTo(QtWidgets.QApplication.globalStrut()))

        if s.isValid():
            self.verticalHeader().setMinimumWidth(s.width())

    def eventFilter(self, obj, event):
        if event.type() != QtCore.QEvent.Paint or not isinstance(
                obj, QtWidgets.QAbstractButton):
            return False

        # Paint by hand (borrowed from QTableCornerButton)
        opt = QtWidgets.QStyleOptionHeader()
        opt.initFrom(obj)
        styleState = QtWidgets.QStyle.State_None
        if obj.isEnabled():
            styleState |= QtWidgets.QStyle.State_Enabled
        if obj.isActiveWindow():
            styleState |= QtWidgets.QStyle.State_Active
        if obj.isDown():
            styleState |= QtWidgets.QStyle.State_Sunken
        opt.state = styleState
        opt.rect = obj.rect()
        # This line is the only difference to QTableCornerButton
        opt.text = obj.text()
        opt.position = QtWidgets.QStyleOptionHeader.OnlyOneSection
        painter = QtWidgets.QStylePainter(obj)
        painter.drawControl(QtWidgets.QStyle.CE_Header, opt)

        return True

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

* ng是否可以将按钮文本设置为角度2?

来自分类Dev

是否可以将命令按钮上的文本设置为“清除并退出”

来自分类Dev

是否可以在JavaFX 2中“设置”按钮

来自分类Dev

声明后,是否可以更改GUI按钮的文本?

来自分类Dev

是否可以突出显示输入按钮值的部分文本?

来自分类Dev

是否可以在jwplayer控制栏上设置图标/按钮的顺序?

来自分类Dev

是否可以在Wagtail设置页面上添加按钮?

来自分类Dev

是否可以在QDockWidget上为QStatusBar设置按钮?

来自分类Dev

是否可以在jwplayer控制栏上设置图标/按钮的顺序?

来自分类Dev

是否可以按像素而不是dpi设置文本大小?

来自分类Dev

是否可以将文本区域用于Safari扩展设置?

来自分类Dev

是否可以在ember View定义中直接设置Button的文本

来自分类Dev

是否可以在Java代码中为文本字段设置背景文本?

来自分类Dev

可以在QTableView中的委托小部件后面看到文本

来自分类Dev

可以单击设置顺序按钮

来自分类Dev

Kivy- 是否可以向按钮添加上标或下标文本

来自分类Dev

是否可以为差异片段中的浮动操作按钮设置不同的操作?

来自分类Dev

是否可以在html中将单选按钮标记帮助程序值属性设置为“选中”?

来自分类Dev

自定义按钮:是否可以为多个子图设置相同的比例尺?

来自分类Dev

C#是否可以将groupBox标题设置为单选按钮?

来自分类Dev

iOS是否可以通过按一个按钮来更改按钮的图像并用文本填充标签?

来自分类Dev

是否可以控制“返回”按钮?

来自分类Dev

ViewerJS:是否可以禁用按钮?

来自分类Dev

是否可以在文本区域中设置右下拖动箭头的样式?

来自分类Dev

HTML / Javascript:是否可以默认设置文本style.display =“ none”?

来自分类Dev

是否可以在innerHtmlin JavaScript中为文本的某些部分设置样式?

来自分类Dev

是否可以将文本文件设置为UTF-16?

来自分类Dev

是否可以在Excel单元格中以编程方式设置两种不同的文本颜色

来自分类Dev

是否可以根据特定的Select值自动设置js-GRID文本字段?

Related 相关文章

  1. 1

    * ng是否可以将按钮文本设置为角度2?

  2. 2

    是否可以将命令按钮上的文本设置为“清除并退出”

  3. 3

    是否可以在JavaFX 2中“设置”按钮

  4. 4

    声明后,是否可以更改GUI按钮的文本?

  5. 5

    是否可以突出显示输入按钮值的部分文本?

  6. 6

    是否可以在jwplayer控制栏上设置图标/按钮的顺序?

  7. 7

    是否可以在Wagtail设置页面上添加按钮?

  8. 8

    是否可以在QDockWidget上为QStatusBar设置按钮?

  9. 9

    是否可以在jwplayer控制栏上设置图标/按钮的顺序?

  10. 10

    是否可以按像素而不是dpi设置文本大小?

  11. 11

    是否可以将文本区域用于Safari扩展设置?

  12. 12

    是否可以在ember View定义中直接设置Button的文本

  13. 13

    是否可以在Java代码中为文本字段设置背景文本?

  14. 14

    可以在QTableView中的委托小部件后面看到文本

  15. 15

    可以单击设置顺序按钮

  16. 16

    Kivy- 是否可以向按钮添加上标或下标文本

  17. 17

    是否可以为差异片段中的浮动操作按钮设置不同的操作?

  18. 18

    是否可以在html中将单选按钮标记帮助程序值属性设置为“选中”?

  19. 19

    自定义按钮:是否可以为多个子图设置相同的比例尺?

  20. 20

    C#是否可以将groupBox标题设置为单选按钮?

  21. 21

    iOS是否可以通过按一个按钮来更改按钮的图像并用文本填充标签?

  22. 22

    是否可以控制“返回”按钮?

  23. 23

    ViewerJS:是否可以禁用按钮?

  24. 24

    是否可以在文本区域中设置右下拖动箭头的样式?

  25. 25

    HTML / Javascript:是否可以默认设置文本style.display =“ none”?

  26. 26

    是否可以在innerHtmlin JavaScript中为文本的某些部分设置样式?

  27. 27

    是否可以将文本文件设置为UTF-16?

  28. 28

    是否可以在Excel单元格中以编程方式设置两种不同的文本颜色

  29. 29

    是否可以根据特定的Select值自动设置js-GRID文本字段?

热门标签

归档