LoadDialog::LoadDialog( const QString title, QWidget* pParent )
: QDialog( pParent, Qt::Dialog | Qt::Desktop )
{
Q_ASSERT( pParent != 0 );
setWindowTitle( title );
m_pProgressMessage = new QLabel( this );
m_pProgressMessage->setText( tr("Loaded 9999999999999 items") );
m_pAbortButton = new QPushButton( tr("Abort"), this );
m_pAbortButton->setFixedSize( m_pAbortButton->sizeHint() );
m_pAbortButton->setDisabled( true );
m_pAbortButton->setVisible( false );
QVBoxLayout* pVLayout = new QVBoxLayout();
pVLayout->addWidget( m_pProgressMessage, 0, Qt::AlignCenter );
pVLayout->addWidget( m_pAbortButton, 0, Qt::AlignCenter );
setLayout( pVLayout );
QSize s1 = sizeHint();
QSize s2 = fontMetrics().size( Qt::TextSingleLine, windowTitle() );
setMinimumSize( s1 + s2 );
setFixedSize( s1 + s2 );
connect( m_pAbortButton, SIGNAL(clicked()), this, SLOT(close()), Qt::DirectConnection );
}
объясните мне пожалуйста, почему первый раз показывается диалог с пустым виджетом (диалог состоит только из заголовока окна и рамки), а все последующие разы - нормальный размер и при этом s1 и s2 правильные (осмысленные)?!