Невозможно изменить значение высоты из QRect

Следующий фрагмент кода приводит к моей компиляции, приводящей к «ошибке: передача ‘const QRect’ в качестве ‘this’ аргумента ‘void QRect :: setHeight (int)’ отбрасывает квалификаторы [-fpermissive]».

Как я могу это исправить, а также я заметил, что если я должен был заменить h — = 80; с h— ;, компилятор не жалуется.

int h = this->geometry().height();
h -= 80;
ui->datumTable->geometry().setHeight(h);

1

Решение

geometry() возвращает постоянную ссылку на QRect объект внутри QTableWidget.

Он предназначен только для чтения добытчик. Вы должны взять копию, изменить ее и установить обратно setGeometry сеттер функция:

QRect rect = this->geometry();
int h = rect.height();
rect.setHeight(h - 80);
ui->datumTable->setGeometry(rect);
2

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

QRect g = this->geometry().height();
g.setHeight(g.height()-80);
ui->datumTable->setGeometry(g);
1

Казалось бы, что geometry() в datumTable возвращает const QRect, Не легко исправить, если не существует неконстантной версии.

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