2016-12-12 5 views
1

私はそのアイコンを持っている:
enter image description hereQToolButtonは無効状態でホバーを受け入れますか?


これは実際に私は今のQt Designerで右働いて、オーバーライドペイントイベントなしQToolButtonの相続です。
それはいくつかのオーバーロードされたスタイルを持っている:

MyToolButton { 
    border-style: none; 
    padding-right: 14px; 
    border-radius: 1.5px; 
} 

MyToolButton:hover { 
    background-color: rgb(220, 224, 228); 
} 

MyToolButton:hover:focus { 
    background-color: rgb(220, 224, 228); 
} 

MyToolButton:pressed { 
    background-color: rgb(193, 201, 208); 
} 

MyToolButton:pressed:focus { 
    background-color: rgb(193, 201, 208); 
} 

MyToolButton:menu-arrow { 
    image: url(:/Images/i13_down_arrow_combo.png); 
} 

MyToolButton:menu-arrow:disabled { 
    image: url(:/Images/i13_down_arrow_combo_disabled.png); 
    outline: none; 
    border: 0px; 
} 

MyToolButton::menu-button { 
    border-radius: 0px; 
    border: 1px solid transparent; 
    padding-right: 2px; 
    padding-left: 2px; 
    width: 8px; 
} 

MyToolButton::menu-button:pressed { 
    border-top: 1px solid rgb(169, 180, 190); 
    border-right: 1px solid rgb(169, 180, 190); 
    border-bottom: 1px solid rgb(169, 180, 190); 
    border-top-right-radius: 1.5px; 
    border-bottom-right-radius: 1.5px; 
} 

MyToolButton::menu-button:pressed:focus { 
    outline: none; 
    border: 0px; 
    padding-right: 3px; 
} 

MyToolButton[isMenuShown="false"]::menu-button:pressed:focus 
{ 
    background-color: rgb(220, 224, 228); 
} 


MyToolButton[isMenuShown="true"]::menu-button:pressed:focus 
{ 
    background-color: rgb(193, 201, 208); 
} 

ボタンは無効状態にあるが、それはホバーに反応します!ここ
はホバーアイコンです:私がする必要がどのような
enter image description here

はホバーに示されている境界線を削除することです。
私は、ホバリングのような多くの変形を試みました:無効なオーバーロードなど。
誰でもお手伝いできますか?

答えて

1

問題が見つかりました。 カスタムクラスMyToolButtonをQt Designerにエクスポートしました。それがある

void MyToolButton::paintEvent(QPaintEvent* event) { 
    QToolButton::paintEvent(event); 
    if (<some condition>) 
    else if (underMouse()) // <-----NO isEnabled() here 
     drawSolidBorder ... /// 
    else if (<some condition>) 
     drawSolidBorder ... /// 
} 


は、それは次のようlokks paintEventをオーバーロードしています。

関連する問題