如何在PyQt4中旋转圆形鼠标

Siddhi shrivas

我正在尝试为光标移动创建一个应用程序,如果用户输入任何数字,请说5并选择一个形状(圆形或正方形):然后鼠标光标必须旋转5次以形成该选定形状。

我收到错误消息:

cursor.setPos((pos [0] + 1,pos [1] + 1))
TypeError:'QPoint'对象不支持索引。

这是我的代码:

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):
    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):

        lblText = QtGui.QLabel("Enter Number: ", self)
        numText = QtGui.QLineEdit(self)

        btncir = QtGui.QPushButton('Circle', self)
        btncir.setToolTip('Press this button to rotate mouse in circle')

        btnsqr = QtGui.QPushButton('Square', self)
        btnsqr.setToolTip('Press this button to rotate mouse in square')

        fbox = QtGui.QFormLayout()
        fbox.addRow(lblText, numText)
        fbox.addRow(btncir, btnsqr)

        self.setLayout(fbox)

        cursor = QtGui.QCursor()
        pos = cursor.pos()
        cursor.setPos((pos[0] + 1, pos[1] + 1))

        self.setWindowTitle('Move Cursor')
        self.show()

def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
亚历克斯

拥有时收到的pos = cursor.pos()是一个QPoint实例。要接收的位置QPoint,您需要使用进行提取

 x,y = pos.x(), pos.y()

在这里这里也可以看到因此,在您的代码示例中,您可能想做

cursor.setPos(pos.x() + 1, pos.y() + 1)

关于旋转光标。据我了解,您希望光标移动一圈。这是一个小例子,如何实现

class Example(QtGui.QWidget):
    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):

        self.lblText = QtGui.QLabel("Enter Number: ", self)
        self.numText = QtGui.QLineEdit(self)

        self.btncir = QtGui.QPushButton('Circle', self)
        self.btncir.setToolTip('Press this button to rotate mouse in circle')
        self.btncir.connect(self.btncir, QtCore.SIGNAL('clicked()'), self.circleClicked)

        self.btnsqr = QtGui.QPushButton('Square', self)
        self.btnsqr.setToolTip('Press this button to rotate mouse in square')

        fbox = QtGui.QFormLayout()
        fbox.addRow(self.lblText, self.numText)
        fbox.addRow(self.btncir, self.btnsqr)

        self.setLayout(fbox)

        self.cursor = QtGui.QCursor()

        self.setWindowTitle('Move Cursor')
        self.show()

    def circleClicked(self):

        # Grab number of rotations
        n=int(str(self.numText.text()))

        # Define circle
        angle=np.linspace(-np.pi,np.pi,50)
        radius=10.

        # Get Cursor
        pos = self.cursor.pos()
        X=pos.x()
        Y=pos.y()

        # Loop through repitions
        for i in range(n):

            # Loop through angles
            for phi in angle:

                # New coordinate
                x=X+radius*np.cos(phi)
                y=Y+radius*np.sin(phi)

                # Update position
                self.cursor.setPos(x,y)

                # Sleep a bit so we can see the movement
                time.sleep(0.01)

请注意,我将的所有窗口小部件属性Example设为,这使得使用的方法更易于访问它们Example另请注意,QCursor.setPos它不使用tuple,而是两个整数作为输入。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用pyqt4创建圆形图像?

来自分类Dev

如何在Anaconda中安装PyQt4?

来自分类Dev

如何在圆形路径中旋转图像

来自分类Dev

PyQt:如何在PyQt4中的QGroupBox内添加网格布局

来自分类Dev

如何在python中从pyqt4升级到pyqt5

来自分类Dev

如何在PyQt4中调整QMenuBar的大小以显示4K

来自分类Dev

如何在窗口的PyQt4中的不同画布中绘制不同的图?

来自分类Dev

如何在pyqt4中正确创建第二个窗口

来自分类Dev

如何在PyQt4中通过滚动显示RGBA numpy数组图像?

来自分类Dev

如何在Python PyQt4中设置现有MainWidnow的中央小部件?

来自分类Dev

如何在PyQt4的QTextEdit中更改所有字体的大小?

来自分类Dev

如何在PyQt4中为QListView获取selectionchange事件

来自分类Dev

如何在PyQt4的NxN网格布局中插入QImage?

来自分类Dev

如何在PyQt4中杀死QtCore.QTimer一枪?

来自分类Dev

如何在启动画面pyqt4中添加进度栏

来自分类Dev

如何在python PYQt4中保存几个QtextEdits的文本?

来自分类Dev

如何在PyQt4的NxN网格布局中插入QImage?

来自分类Dev

如何在PyQt4中为QtGui.QTextEdit设置自动滚动?

来自分类Dev

如何在PyQt4中创建自动完成组合框?

来自分类Dev

如何在QTextEdit pyqt4中显示不可打印的符号?

来自分类Dev

如何在PyQt4中禁用按钮(或整个主窗口),直到函数返回0

来自分类Dev

如何在PyQt4中创建多页应用程序?

来自分类Dev

如何在pyqt4中将图标设置为qinputdialog?

来自分类Dev

如何在特定单元格 pyqt4 中添加列表

来自分类Dev

如何在使用 pyqt4 的 gridlayout 中增加特定按钮的大小

来自分类Dev

如何在QML中创建圆形鼠标区域

来自分类Dev

如何在QML中创建圆形鼠标区域

来自分类Dev

Python PyQt4如何检测控件按+鼠标滚动

来自分类Dev

检测将鼠标悬停在PyQt4中的特定小部件上

Related 相关文章

  1. 1

    如何使用pyqt4创建圆形图像?

  2. 2

    如何在Anaconda中安装PyQt4?

  3. 3

    如何在圆形路径中旋转图像

  4. 4

    PyQt:如何在PyQt4中的QGroupBox内添加网格布局

  5. 5

    如何在python中从pyqt4升级到pyqt5

  6. 6

    如何在PyQt4中调整QMenuBar的大小以显示4K

  7. 7

    如何在窗口的PyQt4中的不同画布中绘制不同的图?

  8. 8

    如何在pyqt4中正确创建第二个窗口

  9. 9

    如何在PyQt4中通过滚动显示RGBA numpy数组图像?

  10. 10

    如何在Python PyQt4中设置现有MainWidnow的中央小部件?

  11. 11

    如何在PyQt4的QTextEdit中更改所有字体的大小?

  12. 12

    如何在PyQt4中为QListView获取selectionchange事件

  13. 13

    如何在PyQt4的NxN网格布局中插入QImage?

  14. 14

    如何在PyQt4中杀死QtCore.QTimer一枪?

  15. 15

    如何在启动画面pyqt4中添加进度栏

  16. 16

    如何在python PYQt4中保存几个QtextEdits的文本?

  17. 17

    如何在PyQt4的NxN网格布局中插入QImage?

  18. 18

    如何在PyQt4中为QtGui.QTextEdit设置自动滚动?

  19. 19

    如何在PyQt4中创建自动完成组合框?

  20. 20

    如何在QTextEdit pyqt4中显示不可打印的符号?

  21. 21

    如何在PyQt4中禁用按钮(或整个主窗口),直到函数返回0

  22. 22

    如何在PyQt4中创建多页应用程序?

  23. 23

    如何在pyqt4中将图标设置为qinputdialog?

  24. 24

    如何在特定单元格 pyqt4 中添加列表

  25. 25

    如何在使用 pyqt4 的 gridlayout 中增加特定按钮的大小

  26. 26

    如何在QML中创建圆形鼠标区域

  27. 27

    如何在QML中创建圆形鼠标区域

  28. 28

    Python PyQt4如何检测控件按+鼠标滚动

  29. 29

    检测将鼠标悬停在PyQt4中的特定小部件上

热门标签

归档