无法修改QRect的高度值

时间:2013-05-20 13:58:38

标签: c++ qt qrect

以下片段导致我的编译产生“错误:传递'const QRect'作为'void QRect :: setHeight(int)'的'this'参数'丢弃限定符[-fpermissive]”。

我如何解决这个问题,而且我注意到如果我要更换h - = 80;使用h--;,编译器不会抱怨。

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

3 个答案:

答案 0 :(得分:2)

geometry() returns a const reference to a QRect object inside QTableWidget

它应该是一个只读的 getter 。您应该使用setGeometry setter 函数复制,修改并重新设置:

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

geometry()中的datumTable似乎会返回const QRect。除非还有非const版本,否则不是一个简单的修复。