私はqtでGUIを開発しています。私はQWidget
をQHBoxLayout
の中に4つのQPushButton
としています。 これらのボタンにはそれぞれアイコンがあります。 QWidget::resizeEvent(QResizeEvent* event)
を無効にする必要があります。なぜなら、ウィンドウのサイズがわからないからです。私のボタンも同じです。 これは私もアイコンのサイズを変更する必要があることを意味します。 は私が配置するために考えた:私はQtDesigner(Eclipseプラグイン)が、何もアイコンを設定しても試してみました ... myWidget::resizeEvent(QResizeEvent* event)
内QWidget :: resizeEvent(QResizeEvent * event)をオーバーライドする奇妙な動作
button1->setIconSize(button1->size());
をしかし、私は自分のアプリケーションを起動したときに、myWidget::resizeEvent
を再帰的に呼び出されます。.. 唯一のこと良い結果は、ボタンに固定サイズを設定していますが、それは私が必要なものではありません。 resizeEvent
の コード:
resizeEvent
setIconSize
で再帰的に呼び出された
void myWidget::resizeEvent(QResizeEvent* event) {
this->QWidget::resizeEvent(event);
ui.button1->setIconSize(ui.button1->size());
ui.button2->setIconSize(ui.button2->size());
ui.button3->setIconSize(ui.button3->size());
ui.button4->setIconSize(ui.button4->size());
}
? 同じ問題を経験した人がいますか? resizeEvent
を経由せずに同じことを行うことを提案しますか?
私は再帰が設計によるものだと思います。 Qtのドキュメントから: "警告:resizeEvent()内でresize()またはsetGeometry()を呼び出すと、無限の再帰が発生する可能性があります。" – hirschhornsalz
適切なレイアウトが必要です。これは、基になる要素のサイズ変更を処理します。下位要素のresize()またはsetSize()を呼び出さなければならないと思われる場合は、ウィジェットレイアウトに問題があります。 – hirschhornsalz
ボタンは既にボタンをリサイズするQHBoxLayoutの中にあります.. –