6

私のプロジェクトでは、これを使用して表示と非表示を切り替えるプッシュボタンがいくつかあります。

ui->button->setVisible(true);
//or
ui->button->setVisible(false);

しかし、それらが見えないときは、それらも機能しないようですか?どうすればこれを回避できますか?

私はすでにこれを試しました:

ui->button->setEnabled(true);

それらすべてについてですが、何も変わりません。

4

3 に答える 3

10

を呼び出すと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

そうすれば、ボタンは依然として論理的にレイアウト内にあります (そして適切なスペースを占有します) が、完全に透明な色で表示されるため表示されません。

于 2013-07-15T01:35:22.333 に答える