私のプロジェクトでは、これを使用して表示と非表示を切り替えるプッシュボタンがいくつかあります。
ui->button->setVisible(true);
//or
ui->button->setVisible(false);
しかし、それらが見えないときは、それらも機能しないようですか?どうすればこれを回避できますか?
私はすでにこれを試しました:
ui->button->setEnabled(true);
それらすべてについてですが、何も変わりません。
私のプロジェクトでは、これを使用して表示と非表示を切り替えるプッシュボタンがいくつかあります。
ui->button->setVisible(true);
//or
ui->button->setVisible(false);
しかし、それらが見えないときは、それらも機能しないようですか?どうすればこれを回避できますか?
私はすでにこれを試しました:
ui->button->setEnabled(true);
それらすべてについてですが、何も変わりません。
を呼び出すとQWidget::setVisible(false)
、ビューから非表示になるだけでなく、論理的にレイアウトから削除されるため、キーの押下やマウスのクリックに応答しなくなります。あなたが望むのは、ウィジェットを表示せずにそのままにしておくことです。あなたの状況で私が試みることは、QPalette
あなたに関連付けられているを変更しQPushButton
て、透明にする(つまり、見えないようにする)ことです
// Make the button "invisible"
QBrush tb(Qt::transparent); // Transparent brush, solid pattern
ui->button->setPalette(QPalette(tb, tb, tb, tb, tb, tb, tb, tb, tb)); // Set every color roles to the transparent brush
// Make the button "visible"
ui->button->setPalette(QPalette()); // Back to the default palette
そうすれば、ボタンは依然として論理的にレイアウト内にあります (そして適切なスペースを占有します) が、完全に透明な色で表示されるため表示されません。