LINUX.ORG.RU

EditText на весь Groupbox...

 ,


0

1

Вычитал что у каждого родительского виджета должен быть свой layout, по которому выстраивается дочерний...

Пишем код:

    QHBoxLayout *hbox = new QHBoxLayout(this); //самый родительский layout

    //в нём два GroupBox родителем является hbox
    QGroupBox *groupBox = new QGroupBox(this);
    groupBox->setTitle("name");
    QGroupBox *groupBox2 = new QGroupBox(this);
    groupBox2->setTitle("name 2");
    hbox->addWidget(groupBox);
    hbox->addWidget(groupBox2);

    //в каждом GroupBox ещё по одному QHBoxLayout для помещения в него TextEdit
    QHBoxLayout *hbox_g = new QHBoxLayout(groupBox);
    QHBoxLayout *hbox_g2 = new QHBoxLayout(groupBox2);

    //и, наконец по одному TextEdit в каждый GroupBox

    QTextEdit *textEdit = new QTextEdit();
    QTextEdit *textEdit2 = new QTextEdit();

    hbox_g->addWidget(textEdit); //виджеты ставим
    hbox_g2->addWidget(textEdit2);

Теперь вопрос что в моём коде не хорошо?

И почему он работает без setLayout?

Почему надо писать QGroupBox(this); а не QGroupBox(hbox); ?

Почему QTextEdit(); а не QTextEdit(this); ?

P.S да я читал доки и примеры, но непонятно...

★★★★★

Последнее исправление: sniper21 (всего исправлений: 1)

И почему он работает без setLayout?

потому что указываешь парента

Почему QTextEdit(); а не QTextEdit(this); ?

потому что после addWidget парентом (ЕМНИП) все равно станет лейаут

Stil ★★★★★
()

Почему QTextEdit(); а не QTextEdit(this); ?

Можно и так, и так. Как уже заметили, все-равно после addWidget родителем станет layout.

Почему надо писать QGroupBox(this); а не QGroupBox(hbox); ?

ЕМНИП, можно и так, и так...

solovey ★★
()

Почему надо писать QGroupBox(this); а не QGroupBox(hbox); ?

Лэйаут не является потомком QWidget

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

Блин, точно.. Меня переклинило, что они оба от QObject'а наследуются.

solovey ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.