1

MS Office 2007にあるリボン UIに似たものを実装したいと考えています。とともに を使用しています。を押すと対応するfromが表示されます。aが押されたときに、他の何かが押された場合を除いて、もう一度押すことができないように実装したいと思います。だから、私はこれを呼んでいます:私の最初の行で。ドキュメントによると:QPushbuttonQStacked WidgetQPushbuttonwidgetStacked WidgetPushButtonQPushButtonclicked() SLOTQPushButtonbutton->setDown(true);

このプロパティが true の場合、ボタンは押されています。このプロパティを true に設定すると、pressed() および clicked() シグナルは発行されません。

そのため、実行時にクリックすると、ボタンが押された状態で表示されます。それは良い!ただし、SIGNALは引き続き出力されます。つまりpressed()、 &clicked()は出力されます。SIGNALとのさまざまな組み合わせを使用して、同じプロパティを試しましたSLOT。しかし、それはまったく同じです。Qt 4.8.1 を使用しています。ここで何がうまくいかないのですか?ありがとうございました。

4

2 に答える 2

3

ボタンの外観を押された状態に設定したい場合は、関数を使用できますsetDown()。ドキュメントはあまり明確ではありませんが、次のとおりです。

このプロパティが true の場合、ボタンは押されています。このプロパティを true に設定すると、pressed() および clicked() シグナルは発行されません。

ボタンが押されているはシグナルが発信されないという意味ではありませんが、呼び出し時にsetDown()シグナルが発信されないという意味ではありません(すべてのボタンが有効になり、2 回目のクリックでその状態が切り替わる可能性があります)。

できることはisDown()、 のハンドラー内でボタンが押されている ()かどうかを確認することですclicked()。別の方法として、ボタンをチェック可能に変更することもできます ( setCheckable())): ボタンを 2 回クリックすると、ボタンが「閉じられます」(必要な動作の場合)。

于 2013-02-25T12:56:20.660 に答える
0

すべてのボタンをチェック可能に設定してから、読み進めてください

http://qt-project.org/doc/qt-4.8/qbuttongroup.html

于 2013-02-25T21:03:58.967 に答える