6

カスタムスタイルのQPushButtonボタンが2つあります。Okボタンのスタイルシートは次のとおりです。

QPushButton
{ 
    background-color:#9dce2c;
    border-radius:7px;
    border:1px solid #83c41a;
    color:#ffffff;
    font-size:15px;
    font-weight:bold;
    padding:4px 24px;
    text-decoration:none;
}
QPushButton:pressed
{
    border:2px solid black;
}

これが次のようになります。

[OK]ボタン

大丈夫です。ただし、ボタンをクリックすると(フォーカスを取得)、次のようになります。

OKボタンフォーカス

テキストの周りにわずかに影のある長方形があることに注意してください。テキストが「選択」されているように見えます。ボタンがフォーカスを失うと、再び正常に見え始めます。選択したコントロールが次のように強調表示されるために発生すると思います。

ここに画像の説明を入力してください

ただし、フォーカスされているかどうかに関係なく、ボタンは変更されないままにしておきたいです。この問題を解決する方法はありますか?

4

4 に答える 4

4

これにより、オレンジ色の長方形が削除されます。

QPushButton:focus {
    outline: none;
}

PS:フォーカス状態に変更された背景色などのスタイルを追加して、この状態がユーザーに「表示」されたままになるようにする必要があります。

于 2013-03-16T16:18:57.823 に答える
3

解決策を見つけました。それは非常に単純であることが判明しました。

この問題は確かに、ボタンがフォーカスを受け取ることによって引き起こされました。ボタンのfocusPolicy属性をに設定するだけですNoFocus。QtDesignerで実行できます。

ここに画像の説明を入力してください

またはコード内:

ui.okButton->setFocusPolicy(Qt::NoFocus);

完了後、ボタンをクリックしてもフォーカスが移動せず、外観も変わりません。

于 2012-07-31T08:46:23.017 に答える
0

ここ:http ://doc.qt.io/qt-5/stylesheet-examples.html

私は次のようなパラメータを見つけました:

"selection-color: yellow;"
"selection-background-color: blue;"

私はそれらを試していませんが、それはあなたが必要とするものかもしれません。

于 2012-07-31T08:35:55.063 に答える
0

QPushButton:hover試しませんでしたが、と同じスタイルに設定することで修正できると思いますQPushButton。ホバー時にボタンを赤にするデフォルトのスタイルがいくつかあります。ボタンがどれであるか(おそらくhover)を見つけてオーバーライドする必要があります。

于 2012-07-31T07:47:00.837 に答える