QTextEditにマウスポインタカーソルを設定します

Aug 22 2020

Qt StyleSheetcursor: pointer;オプションを目指していますが、PyQt5です。以下のコードを実行するとわかるように、カーソルは変化しますが、テキスト領域ではなく、QTextEditの境界でのみ変化します。テキストエリアも変更する必要があります。

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QTextEdit

class MainWindow(QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.myLayout = QHBoxLayout()
        self.status = QTextEdit()
        self.status.setStyleSheet("QTextEdit {min-width:500px;min-height:200px;border:15px solid green;}")
        self.status.setCursor(Qt.WaitCursor)
        self.status.setPlainText("test")

        self.myLayout.addWidget(self.status)
        self.setLayout(self.myLayout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mw = MainWindow()
    mw.show()
    sys.exit(app.exec_())

回答

2 eyllanesc Aug 22 2020 at 22:03

また、QTextEditビューポートにQt :: WaitCursorカーソルを設定します。

self.status.setCursor(Qt.WaitCursor)
self.status.viewport().setCursor(Qt.WaitCursor)