【问题标题】:Setting the cursor for a header in a QTreeWidget via PySide通过 PySide 为 QTreeWidget 中的标题设置光标
【发布时间】:2014-11-24 19:46:15
【问题描述】:

当用户将鼠标悬停在标题上时,我正在尝试为 QTreeWidget 的标题设置光标。我已经尝试通过self.header().setCursor( my_cursor ) 在类中设置标题,但是到目前为止,当我将鼠标悬停在标题上时光标并没有改变。我已经通过谷歌搜索试图找出如何做到这一点,但到目前为止我什么也没找到。我已经使用 PySide 1.2.0(在 Maya 2015 中)和 1.2.2 进行了测试。

我做错了吗,还是有解决方法?下面是一些代码示例:

import sys
from PySide import QtCore, QtGui

class Tree( QtGui.QTreeWidget ):

    def __init__(self, parent = None):
        super(Tree, self).__init__(parent = parent)
        self.header().setCursor(QtGui.QCursor( QtCore.Qt.WaitCursor))

widget = Tree()
widget.show()

如果我将光标设置在树小部件本身上,则光标将按预期设置。

【问题讨论】:

    标签: python python-2.7 qt pyside maya


    【解决方案1】:

    无需重新设置树的头部。

    只需将光标设置在现有标题的视口上:

        self.header().viewport().setCursor(QtCore.Qt.WaitCursor)
    

    【讨论】:

      【解决方案2】:

      很老套,但你可以通过将 self.header() 转换为 QWidget 来做到这一点,因为 setCursor()QWidget 类的一个方法。

      import sys
      
      from PySide import QtCore, QtGui
      
      
      class Tree(QtGui.QTreeWidget):
          def __init__(self, parent=None):
              super(Tree, self).__init__(parent=parent)
              QtGui.QWidget(self.header()).setCursor(QtCore.Qt.WaitCursor)
      
      
      widget = Tree()
      widget.show()
      

      而且您实际上不必将 QtCore.Qt.WaitCursor 强制转换为 QtGui.QCursor 对象。

      希望这很有用。

      【讨论】:

        【解决方案3】:

        添加到 kartikg3 的答案。这将允许使用标题的完整长度。

        import sys
        
        from PySide import QtCore, QtGui
        
        
        class Tree(QtGui.QTreeWidget):
            def __init__(self, parent=None):
                super(Tree, self).__init__(parent=parent)
                header_widget = QtGui.QWidget()
                header_widget.setCursor(QtGui.QCursor(QtCore.Qt.WaitCursor))
                header_layout = QtGui.QHBoxLayout()
                header_layout.addWidget(header_widget)
                self.header().setLayout(header_layout)
        
        
        widget = Tree()
        widget.show()
        

        到目前为止,这两种方法的唯一问题似乎是添加小部件将删除更改列大小的能力。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-10-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多