如何在QTabWidget选项卡上设置鼠标光标

2024-06-28 12:46:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个我没有成功解决的简单问题。我正在使用Python-3.6和PyQt5。在

我希望当用户将鼠标放在非活动选项卡上方时,更改鼠标光标(为了理解,他可以单击鼠标来更改活动选项卡)。这只在非活动选项卡上,而不是在其内容上(因为在Qt Designer中更改cursor参数允许我这样做)。我在网上找了几个小时的答案,但没找到我想要的。我想我必须处理stylesheet属性,但是我不知道怎么做(它可能是QTabWidget::pane的问题)。有人能帮帮我吗?在

下面是一个示例代码,其中鼠标光标在整个选项卡上更改,而不仅仅是选项卡标题:

from PyQt5 import QtCore, QtGui, QtWidgets
import sys

class Ui_Form(QtWidgets.QWidget):
    def __init__(self, nb_courbes=1, nom_courbes='', parent=None):
        super(Ui_Form, self).__init__(parent)
        self.setupUi(self)

    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(249, 169)
        self.tabWidget = QtWidgets.QTabWidget(Form)
        self.tabWidget.setGeometry(QtCore.QRect(40, 40, 127, 80))
        self.tabWidget.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.tabWidget.setObjectName("tabWidget")
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        self.tabWidget.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        self.tab_2.setObjectName("tab_2")
        self.tabWidget.addTab(self.tab_2, "")

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    form = Ui_Form()
    form.show()
    sys.exit(app.exec_())

我希望普通光标(箭头)位于蓝色区域,但将鼠标光标更改为红色区域中不活动的选项卡标题。在

{a2}


Tags: selfformuisys鼠标qttabpyqt5
1条回答
网友
1楼 · 发布于 2024-06-28 12:46:09

通过将光标设置在tab-bar上,可以更改所有选项卡的光标:

    self.tabWidget.tabBar().setCursor(QtCore.Qt.PointingHandCursor)

但是,要只为不活动的选项卡更改光标,必须使用事件筛选器动态更改光标,如下所示:

^{pr2}$

(PS:Qt不支持通过样式表更改光标)。在

相关问题 更多 >