QToolButton
がクリックされるのを防ぐ方法はありますか?私はどこかの設定を読むQToolButtonが移動しないようにする
button->setCheckable(false);
トリックを行う必要がありますが、それはありません。
QToolButton
がクリックされるのを防ぐ方法はありますか?私はどこかの設定を読むQToolButtonが移動しないようにする
button->setCheckable(false);
トリックを行う必要がありますが、それはありません。
をcontrollするためにそれを使用します。
class ButtonProxyStyle : public QProxyStyle
{
public:
const int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0)
{
int ret = 0;
switch (metric)
{
case QStyle::PM_ButtonShiftHorizontal:
case QStyle::PM_ButtonShiftVertical:
ret = 0;
break;
default:
ret = QProxyStyle::pixelMetric(metric, option, widget);
break;
}
return ret;
}
};
そして、あなたのボタンで:
myToolButton->setStyle(new ButtonProxyStyle);
ありがとう!私は実際にこのソリューションを試してみましたが、うまくいきませんでした。私は 'myToolButton-> setStyleSheet(" QToolButton {border:none; color:#223f5a;} ");'を設定しているので、これで問題があったと思います。このスタイルシートを 'QProxyStyle'に統合する方法を知っていますか? – madasionka
あなたはそうです:スタイルシートとプロキシスタイルは一緒に動作しません。私のソリューションを使用する場合は、ボタンを最初からペイントしなければなりません(ちょっと退屈です)(http://doc.qt.io/qt-5/style-reference.html)。 QAbstractButtonをサブクラス化して、必要な振る舞いを持たせるのが最適な解決策でしょうか? – IAmInPLS
ツールバーにQActionを追加し、QProxyStyle経由でそれを行うための方法があり、あなたのツールボタン
// button action
QAction * poBtnAction = poToolbar->addWidget(button);
// disable button
poBtnAction->setEnabled(false);
回答ありがとうございますが、私はツールバーを持っていません。私はちょうどQToolButtonを持っています。基本的に私がやっていることは、これをカスタマイズすることです:https://github.com/Elypson/qt-collapsible-section。 – madasionka
ボタンを描く必要があります。それが押された状態にあるときは、通常通りそれを描くべきです。ちょうどコピーペースペイント方法とそれを修正します。またはQSSを使用して、押したボタンを通常と同じ方法で描きます。 –