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.

¿Cómo puedo hacer un enlace hipertexto en un QPushButton?

Hola, estoy intentando crear un hipervínculo en un QPushbutton.

Busqué información que pudiera ayudarme y encontré esto:
https://stackoverflow.com/questions/2465413/qt-add-a-hyperlink-to-a-dialog

Esto me indicó cómo puedo usar un hipervínculo en un diálogo (o ventana principal).

Sin embargo, lo que quiero es usar un hipervínculo en el QMessagebox que aparece después de hacer clic en el QPushbutton.

Busqué si podía usar qlabel en qmessagebox pero no encontré ninguna información al respecto.

¿Cómo puedo hacer esto?

(Cualquier otra forma en la que pueda aplicar un hipervínculo haciendo clic en un segundo botón está bien. Lo que intento hacer es: 1. Hacer clic en un botón y mi programa obtendrá información de una URL. 2. Hacer clic en un segundo botón y se activará mi URL)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para agregar un hipervínculo en un QMessageBox, puedes utilizar el método setTextFormat() del QMessageBox y establecerlo en Qt::RichText. Luego, puedes establecer el texto del QMessageBox para incluir una etiqueta de anclaje HTML que enlace a la URL deseada.

    Aquí tienes un fragmento de código que demuestra cómo hacerlo:

    QMessageBox msgBox;
    msgBox.setTextFormat(Qt::RichText);
    msgBox.setText("Haz clic <a href="\"http://www.example.com\"">aquí</a> para ir al sitio web.");
    msgBox.exec();
    

    Esto mostrará un QMessageBox con un texto clickable que, al hacer clic, abrirá la URL especificada en el navegador predeterminado.

    Alternativamente, puedes crear tu propio QDialog que contenga un QLabel con un enlace y luego mostrar este diálogo cuando se haga clic en el segundo botón.

    void MainWindow::on_pushButton_second_clicked()
    {
        QDialog dialog;
        QLabel label(&dialog);
        label.setText("<a href="\"http://www.example.com\"">http://www.example.com</a>");
        label.setOpenExternalLinks(true);
        label.setWordWrap(true);
        dialog.exec();
    }
    

    Este código crea un nuevo QDialog con un QLabel que contiene un enlace. Cuando se hace clic en la etiqueta, la URL especificada se abrirá en el navegador predeterminado.

Comments are closed.