Pregunta

Tengo un QDialog subclases que contiene un montón de subclase de QSpinBox. Al hacer clic en un cuadro de número, un teclado (otro QDialog) donde se puede utilizar pulsadores para introducir dígitos. Ambos de QDialog se activan llamando QDialog :: exec ();

Sin embargo, al abrir este segundo QDialog, el primero se cierra. Me he metido a través de él y se dio cuenta de la primera QDialog no termina todavía. QDialog 1 envía "QDialog :: Rechazado" Después de que termine QDialog 2. Lo que me gustaría es el QDialog 1 no terminar del todo, tiene que actualizar el cuadro de número con el valor introducido y abrir más de QDialog de otra caja de hilatura es la usuario desea editar más adelante.

Creo que tiene que ver con eventloop del QDialog 1 siendo asesinada por eventloop de QDialog 2. He intentado usar QDialog :: Mostrar en QDialog 2. El siguiente widget aparece por un momento (milisegundos), pero no se mantiene activo. QDialog 1 se cierra inmediatamente también.

¿Fue útil?

Solución

QDialog 1 se ajusta a Qt :: emergente, QDialog 2 se establece en Qt :: diálogo por defecto. Una ventana se cierra en una amplia gama de eventos. He puesto la bandera de QDialog 2 a Qt :: emergente, así, lo que no parece que cerrar QDialog 1 más.

Otros consejos

La forma en que has descrito verbalmente el código, no deberías estar viendo el problema que usted describe. Sin ver el código real, no podía aventurar una conjetura en cuanto a lo que está causando el problema. Sin embargo, puedo decir con certeza que he encontrado en exec() de diálogo A, entonces dentro de ese exec() corrida de diálogo B (de un botón), y había un diálogo de estancia disponible cuando las salidas de diálogo B.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top