2011-12-27 4 views
1

Я запускаю QDialog с помощью метода exec(), теперь мне он нравится невидимым, пока какой-то внутренний объект внутри него (Qwebkit) не закончит свой материал.
в конструкторе QDialog я установить его:Как установить QDialog, не видимый в методе exec()?

setVisible(false); 
hide() 

но когда я делаю, где pAuthenticationDialogContainer является указателем на QDialog:

if(pAuthenticationDialogContainer->exec() != QDialog::Accepted) { ....} 

я могу увидеть QDialog в течение нескольких секунд (1-2 секунд)
Как я могу сделать его полностью невидимым?
Благодаря

+0

У вас есть QWebView в вашем диалоговом окне, и вы хотите отобразить диалоговое окно при выходе сигнала loadFinished, правильно? – graphite

+0

ну да, но я решил это – user63898

ответ

0

Рассматривали ли вы подключения кнопки пользователь нажимает с close() или accept() слотах от QDialog?

connect(pAuthenticationDialogContainer->loginButton, 
     SIGNAL(clicked()), 
     pAuthinticationDialogContainer, 
     SLOT(accept())); 

Предполагается, что скрыть диалог. Вам нужно будет сделать этот код точным и проверить его, но это должно сделать это автоматически для вас. Кроме того, я думаю, что код проводки для условия else будет полезен.