Pergunta

Eu tenho um qdialog subclassificado contendo um monte de qspinbox de subclassem. Ao clicar em um spinbox, um teclado (outro qdialog), onde você pode usar o PushButtons para inserir dígitos. Ambos os qdialog são ativados ligando para Qdialog :: EXEC ();

No entanto, ao abrir este 2º Qdialog, o primeiro fecha. Eu pisei e notei que o 1º QDialog ainda não termina. QDialog 1 envia "QDIALOG :: rejeitado" depois que eu terminar o QDialog 2. O que eu gostaria é o QDialog 1 para não terminar, ele precisa atualizar a caixa de spin com o valor inserido e abrir mais qdialog's para outros spinbox O usuário deseja editar mais tarde.

Eu acho que tem a ver com o Eventloop do Qdialog 1 sendo morto pelo Eventloop do Qdialog 2. Eu tentei usar QDialog :: Show no Qdialog 2. O widget aparece por um momento (milissegundo), mas não permanece ativo. O QDialog 1 também é imediatamente fechado.

Foi útil?

Solução

O QDIALOG 1 está definido como QT :: POPUP, QDIALOG 2 foi definido como QT :: Caixa de diálogo por padrão. Um pop -up fecha em uma ampla gama de eventos. Eu também defini a bandeira do Qdialog 2 para Qt :: Pop -up, o que parece mais fechar o QDialog 1.

Outras dicas

A maneira como você descreveu verbalmente o código, não deve ver o problema que descreve. Sem ver seu código real, não pude arriscar um palpite sobre o que está causando o problema. No entanto, posso dizer com certeza que corri exec() na caixa de diálogo A, depois dentro daquela corrida exec() na caixa de diálogo B (de um botão) e tinha uma caixa de diálogo disponível quando a caixa de diálogo B sair.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top