es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para mover un elemento hacia donde está el cursor, puedes utilizar el widget QPlainTextEdit y su clase QTextCursor en Qt.

    Primero, necesitas obtener la posición del cursor en el cuadro de texto llamando al método QPlainTextEdit.textCursor(). Esto devuelve un objeto QTextCursor que puedes utilizar para obtener la posición del cursor utilizando el método QTextCursor.position().

    A continuación, puedes establecer la posición del elemento que deseas mover utilizando el método QWidget.move(). Para mover un combobox a la posición del cursor en el cuadro de texto, deberías pasar las coordenadas x e y de la posición del cursor al método move.

    Aquí tienes un ejemplo de código:

    from PyQt5.QtWidgets import QApplication, QPlainTextEdit, QWidget, QComboBox
    from PyQt5.QtGui import QTextCursor
    
    # crea tus widgets
    text_edit = QPlainTextEdit()
    combo_box = QComboBox()
    
    # obtén la posición del cursor
    cursor = text_edit.textCursor()
    position = cursor.position()  # devuelve un entero
    
    # establece la posición del combo box a la posición del cursor
    combo_box.move(text_edit.pos().x() + text_edit.cursorRect(cursor).x(), text_edit.pos().y() + text_edit.cursorRect(cursor).y())
    
    # muestra tus widgets
    text_edit.show()
    combo_box.show()
    

    En este ejemplo, utilizamos el método QPlainTextEdit.cursorRect() para obtener la posición del cursor relativa al widget del cuadro de texto. Sumamos esta posición a la posición del widget del cuadro de texto para que el combo box se posicione correctamente.

    Ten en cuenta que este ejemplo asume que el combo box es un widget hijo del widget del cuadro de texto. Si no lo es, deberás ajustar el cálculo de la posición en consecuencia.

Comments are closed.