crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Про QVBoxLayout и про addStretch()
CoderOl
  опции профиля:
сообщение 13.3.2011, 15:35
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 13.3.2011
Пользователь №: 2494

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем привет!
Помогите пожалуйста разобраться.

Хочу получить такое окно
Прикрепленное изображение


Вот часть исходного кода


cPass::cPass(QWidget *parent): QDialog(parent)
{
    resize(1024,768);

    fr1= new QFrame;
    fr1->move(4,4);
    fr1->setFrameShape(QFrame::Panel);
    fr1->setFrameShadow(QFrame::Raised);//QFrame::Sunken

    fr2= new QFrame;
    fr2->move(4,4);

    //fr2->setContentsMargins(4,4,500,200);
    fr2->setFrameShape(QFrame::Panel);
    fr2->setFrameShadow(QFrame::Sunken);//QFrame::

    QHBoxLayout *xlayout = new QHBoxLayout;
    xlayout->setMargin(4);
    xlayout->addWidget(fr2);
    fr1->setLayout(xlayout);

//////////////////////////////////////////////////////////
    fr3= new QFrame;
    fr3->move(4,4);
    fr3->setContentsMargins(4,4,500,200);
    fr3->setMinimumHeight(100);
   fr3->setMaximumHeight(100);
    fr3->setFrameShape(QFrame::Panel);
    fr3->setFrameShadow(QFrame::Raised);

    fr4= new QFrame;
    fr4->setFrameShape(QFrame::Panel);
    fr4->setFrameShadow(QFrame::Sunken);
    lb1= new QLabel(tr("Password"));
    lb1->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Minimum);
    cb1=new QComboBox;
    pb1= new QPushButton(tr("12345"));

   [color="#FF0000"][b]
  QVBoxLayout *l22 = new QVBoxLayout();
   l22->addStretch();  //???????????????????????????????????????????????????
    l22->addWidget(lb1);
  //l22->addStretch();
    l22->addWidget(cb1);
  // l22->addStretch();[/b]
  [/color]  
QHBoxLayout *l3 = new QHBoxLayout;
      l3->addLayout(l22);
      l3->addWidget(pb1);

     fr4->setLayout(l3);

    QHBoxLayout *layout = new QHBoxLayout;
    layout->setMargin(4);
    layout->addWidget(fr4);

    fr3->setLayout(layout);

/////////////////////////////////////////////////// /////////////////////////////
    fr5= new QFrame;
    fr5->setMinimumHeight(70);
    fr5->setMaximumHeight(70);;
    fr5->setFrameShape(QFrame::Panel);
    fr5->setFrameShadow(QFrame::Raised);

    fr6= new QFrame;
    fr6->setFrameShape(QFrame::Panel);
    fr6->setFrameShadow(QFrame::Sunken);
    continueButton = new QPushButton(tr("Continue"));
    exitButton = new QPushButton(tr("Exit"));
    connect(exitButton,SIGNAL(clicked()),this,SLOT(close()));

    QHBoxLayout *l1 = new QHBoxLayout;
    l1->addStretch();
    l1->addWidget(continueButton);
    l1->addStretch();
    l1->addWidget(exitButton);
    l1->addStretch();
    fr6->setLayout(l1);

    QHBoxLayout *layoutq = new QHBoxLayout;
    layoutq->setMargin(4);
    //layoutq->addStretch();
    layoutq->addWidget(fr6);

    fr5->setLayout(layoutq);

    QVBoxLayout * mainLayout = new QVBoxLayout;
     mainLayout->setMargin(4);
     mainLayout->addWidget(fr1);
     mainLayout->addWidget(fr3);
     mainLayout->addWidget(fr5);

     setLayout(mainLayout);

}



когда использую строку:

l22->addStretch();

то мои QFrame расползаются вдребаган, вот так

Прикрепленное изображение


Подскажите пожалуйста, что я не так делаю, и примерно в каком направлении копать. Я новичок в QT, до этого программировал в Builder'e.
Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.12.2024, 10:12