Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: useless от Март 31, 2006, 08:03



Название: Пользовательский виджет в QGridLayout
Отправлено: useless от Март 31, 2006, 08:03
Создал свой виджет (от QWidget). Пытаюсь его воткнуть в gridlayuot - виджета не видно. Встроенные виджеты (типа QLabel и QLineEdit) вставляются без проблем.

В чём дело?


Название: Re: Пользовательский виджет в QGridLayout
Отправлено: Maxz от Март 31, 2006, 09:50
Цитата: "useless"
Создал свой виджет (от QWidget). Пытаюсь его воткнуть в gridlayuot - виджета не видно. Встроенные виджеты (типа QLabel и QLineEdit) вставляются без проблем.
В чём дело?

А пример можешь привести?


Название: Re
Отправлено: useless от Март 31, 2006, 10:11
Мой код:
Код:

QGridLayout m_layout;
Params m_params; // Пользовательский виджет (от QWidget)
QLabel m_dept, m_rev, m_pro, m_sup;
QLineEdit m_editDept, m_editRev, m_editPro, m_editSup;
.........................

//Вставляем в layuot встроенные Qt-виджеты - проблем нет
m_layout.addWidget(&m_dept, 0, 0, Qt::AlignTop);
m_layout.addWidget(&m_editDept, 0, 1, Qt::AlignTop);
m_layout.addWidget(&m_rev, 1, 0, Qt::AlignTop);
m_layout.addWidget(&m_editRev, 1, 1, Qt::AlignTop);
m_layout.addWidget(&m_pro, 2, 0, Qt::AlignTop);
m_layout.addWidget(&m_editPro, 2, 1, Qt::AlignTop);
m_layout.addWidget(&m_sup, 3, 0, Qt::AlignTop);
m_layout.addWidget(&m_editSup, 3, 1, Qt::AlignTop);

//Вставляем в layout свой виджет - виджета не видно
m_layout.addWidget(&m_params, 4, 0,  Qt::AlignTop);


Название: Пользовательский виджет в QGridLayout
Отправлено: Maxz от Март 31, 2006, 10:35
Мне так представляется, что в Params нет ничего, поэтому он его и не показывает. Попробуй в конструкторе Params изменить его размеры, например:

Params::Params(QWidget *_prntWgd):QWidget(_prntWgd){
//так:
resize(QSize(100,100));
//или так:
setMinimumSize(QSize(100,100));
}


Название: Пользовательский виджет в QGridLayout
Отправлено: useless от Март 31, 2006, 10:39
setMinimumSize - сработало
Спасибо!!! :)