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内のオブジェクトへの const 参照を返しますQTableWidget

読み取り専用のgetterであることを意図しています。コピーを取得して変更し、setGeometry セッター関数で元に戻す必要があります。

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()れます。非 const バージョンも存在しない限り、簡単な修正ではありません。datumTableconst QRect

于 2013-05-20T14:01:20.273 に答える