1

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

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

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

3 回答 3

2

geometry() 返回对QRect内部对象QTableWidget的 const 引用。

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

QRect rect = this->geometry();
int h = rect.height();
rect.setHeight(h - 80);
ui->datumTable->setGeometry(rect);
于 2013-05-20T14:04:54.477 回答
1
QRect g = this->geometry().height();
g.setHeight(g.height()-80);
ui->datumTable->setGeometry(g);
于 2013-05-20T14:05:14.367 回答
0

看起来geometry()indatumTable返回一个const QRect. 除非也有非常量版本,否则这不是一个简单的解决方法。

于 2013-05-20T14:01:20.273 回答