2017-04-06 42 views
3

グリッドですべてのボタンが無効になっていますが、一部の場合は背景色を変更したいと思います。私がしようとしている:Qt/C++ - 無効なボタンの背景を設定しますか?

QVector<QVector<QPushButton*> > _fieldButtons; 

はしかし、これらのボタンはすべて無効になり、そして唯一のテキストの色が変更されますされている

_fieldButtons[0][0]->setStyleSheet("color: blue; background-color: blue;"); 

を:

enter image description here

どのように変更することができます背景はありますが、テキストはありませんか?ありがとうございました!

更新 ボタンがフラットなので機能していないと思っていました。フラットボタンの色はどのように変更できますか?

+0

『色:青』は、テキストの色を変更し、あなたはそれを私が知っている、それは大丈夫です – JLev

+0

@JLev、メインを避けたい場合は、あなたのコードから削除します –

+0

@GMボタンの色も変更されていません –

答えて

0

つのオプション:

  1. あなたのスタイルシートにborder: none;を追加します。

  2. 使用setAutoFillBackground(true)ここQPalette::Button

    myButton->setFlat(true); 
    myButton->setAutoFillBackground(true); 
    QPalette pal = myButton->palette(); 
    pal.setColor(QPalette::Button, QColor(Qt::blue)); 
    myButton->setPalette(pal); 
    

http://doc.qt.io/qt-5/qpushbutton.html#flat-prop

-1

と一緒に、あなたのコントロールで2 "擬似状態" を持っています。 「疑似状態」のリストについては、以下のリンクを参照してください。

http://doc.qt.io/qt-5/stylesheet-reference.html#list-of-pseudo-states

最初の "擬似国家" である - フラット

二 "擬似国家" である - ここでは無効になっ

あなたはクラブに持っているの両方州は "setStyleSheet"を使ってスタイルを設定します。用

_fieldButtons[0][0]->setStyleSheet(":flat:disabled {background-color: blue; border: none;}"); 

表情「:ホバー:有効」(文書の取り扱い方法を二つの異なる「擬似状態」)、下のリンクでより良いアイデアを得るために。理解する

http://doc.qt.io/qt-4.8/stylesheet-syntax.html

あなたは私たちがQPushButtonためborder:noneを与えなければならない理由は、この答えの最初のハイパーリンクに下記の情報を探してください。

"警告:QPushButtonで背景色のみを設定すると、borderプロパティをある値に設定しない限り、背景が表示されないことがあります。これは、デフォルトでQPushButtonが完全に重なる背景色。「

0

ことは、これを試してみてください:

myButton->setPalette(QColor("#124e6b"));

+0

コードを説明してください – GGO

関連する問題