Следующий фрагмент кода приводит к моей компиляции, приводящей к «ошибке: передача ‘const QRect’ в качестве ‘this’ аргумента ‘void QRect :: setHeight (int)’ отбрасывает квалификаторы [-fpermissive]».
Как я могу это исправить, а также я заметил, что если я должен был заменить h — = 80; с h— ;, компилятор не жалуется.
int h = this->geometry().height();
h -= 80;
ui->datumTable->geometry().setHeight(h);
geometry()
возвращает постоянную ссылку на QRect
объект внутри QTableWidget
.
Он предназначен только для чтения добытчик. Вы должны взять копию, изменить ее и установить обратно setGeometry
сеттер функция:
QRect rect = this->geometry();
int h = rect.height();
rect.setHeight(h - 80);
ui->datumTable->setGeometry(rect);
QRect g = this->geometry().height();
g.setHeight(g.height()-80);
ui->datumTable->setGeometry(g);
Казалось бы, что geometry()
в datumTable
возвращает const QRect
, Не легко исправить, если не существует неконстантной версии.