AddWidget QGridLayout блокирует мой проект

Проблема кажется простой, но я не решил ее за 2 часа. У меня есть этот макет:

QGridLayout* view = new QGridLayout(this);
view->setSpacing(15);
view->addWidget(x0,2,1);
view->addWidget(x1,1,1);
view->addWidget(keyboard,2,0);
view->addWidget(x2,1,0);
view->addWidget(draw,0,0,0,1);
resize ( 650,650);
this->setLayout(view);

Мне нужно, чтобы «рисование» (графическая часть проекта) занимало верхнюю часть проекта (строка 0, столбец 0 — столбец 1).

Проблема в том, что какое бы значение я ни указывал в конструкторе:

void QGridLayout :: addWidget (QWidget * widget, int fromRow, fromColumn int, int rowSpan, columnSpan int, Qt :: Alignment alignment = 0)

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

С классическим конструктором

void QGridLayout :: addWidget (QWidget * widget, int row, int column, Qt :: Alignment alignment = 0)

Нет проблем, но виджет «рисовать» не там, где я хочу (только 1 столбец вместо 2).

Кто-нибудь знает, где я делаю это неправильно?

PS: виджеты не имеют настроек макета (кроме цифровой клавиатуры, чтобы зафиксировать минимальную высоту клавиш).

0

Решение

диапазон строк является буквальным, а не индексным, как переменная. Если вы хотите поместить 2 столбца / диапазон строк, вы должны указать значение 2 в параметрах span. Так что вам нужно изменить это view->addWidget(draw,0,0,0,1); в view->addWidget(draw,0,0,1,2);, Диапазон строк / столбцов, равный 1, будет включать только «из строки / столбца», а не «из строки / столбца + 1»

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]