Qt diálogo modal y no modal diálogos

Aquí Insertar imagen Descripción
modo de cuadro y una creación cuadro no modal son los mismos, la clave es diferentes métodos de visualización.
La diferencia es la siguiente:

cuadro de diálogo modal (no funciona en otras ventanas), de diálogo no modal (otras ventanas pueden ser operados)
modal de diálogo con el método exec () para mostrar, en lugar de a través de la demostración de diálogo modal () para visualización.
Aquí hay que hablar de la diferencia entre la demostración () y exec () es,
show ():
mostrar un cuadro de diálogo no modal. Controlar de inmediato vuelve a llamar a la función.
ventana pop-up es un cuadro de diálogo modal, dependiendo del valor de las propiedades modales.
(Original: muestra el control de diálogo de diálogo no modal COMO devuelve inmediatamente al código de llamada ..
De El diálogo modal será de acuerdo o no modal El valor de la propiedad El modal.)

exec ():
muestra un cuadro de diálogo modal, y bloquear el programa hasta que el usuario cierra el cuadro de diálogo. DialogCode función devuelve un resultado.
Durante el cuadro de diálogo aparece, el usuario no puede cambiar a otras ventanas bajo el mismo procedimiento hasta que el cuadro de diálogo se cierra.
(Original :. espectáculos en el diálogo COMO diálogo modal, el bloqueo de una hasta que al usuario se cierra a la función devuelve A A DialogCode el resultado.
Los usuarios no pueden interactuar con el cualquier otra ventana al mismo, la aplicación de una hasta Utilizan Cerrar en el diálogo.)
Aquí se utiliza el aspecto de código

  		QDialog dia(this);
    	dia.resize(200,100);
      	dia.exec();
    	qDebug()<<"模态对话框创建";

        //非模态对话框创建
        QDialog * dia1 = new QDialog(this);
        dia1->show();
        dia1->setAttribute(Qt::WA_DeleteOnClose);

Este código está escrito en una expresión lambda en el interior, por lo que para crear un cuadro de diálogo no modal utiliza un nuevo, de lo contrario la situación parpadeará través aparece el cuadro de diálogo y cuadros de diálogo modales que invoca el método exec (), por lo el caso no será fugaz, la última línea de setAttribute (Qt :: WA_DeleteOnClose), de modo que se crea que el espacio en el montón después de la liberación oportuna para evitar pérdidas de memoria causadas por la aplicación excesiva de espacio (aunque normalmente imposible).

Publicados 212 artículos originales · ganado elogios 4 · Vistas 8748

Supongo que te gusta

Origin blog.csdn.net/ShenHang_/article/details/104877408
Recomendado
Clasificación