2016-03-21 12 views
0

私が開発したカスタムウィジェットのスタイルシートオプションを追加したいと思います。私たちはQPushButtonを別の色に拡張し、押されたときに点滅させます。これは新しいプロパティ、背景色を追加することによって行われています。これをコードで設定します。しかし、私は、スタイルシート()メソッドを使用して、スタイルシート情報を読み出し、これを実行する1つの方法を見ることができ、その後、関連するパラメータのためにそれを解析し、Qtのスタイルシートのエントリを使用して代わりにカスタムQtウィジェットの新しいスタイルシートパラメータの追加

QFlashingButton 
{ 
    background-color-down: yellow; 
    flashing-interval: 5; 
} 

のようなものがこれを設定したいと思います私のウィジェットに設定してください。しかし、Qtがスタイルシートを処理するためのコードにアクセスする方法があるかどうかは疑問です。彼らのコードを最初に見れば、これは公に利用可能ではないようだ。

答えて

1

限り、あなたはスタイルシートで制御したいパラメータがQPropertyで、あなたは構文を使用してスタイルシートでそれを設定することができますよう:qproperty-<PROPERTY_NAME>: <PROPERTY_VALUE>

私は、プロパティ名が実際にそれらにダッシュを持つことができるとは思いません、あなたのカスタムウィジェットのQPropertiesが実際にbackgroundColorDownとflashingIntervalであると仮定すると、あなたのスタイルシートは次のようになります:

QFlashingButton 
{ 
    qproperty-backgroundColorDown: yellow; 
    qproperty-flashingInterval: 5; 
} 
+0

はい、これは私の問題を解決しました。関連する問題として、スタイルシートによってウィジェットの表示プロパティが最初に設定されたため、setBackground()を使用するのではなく、setStyleSheet()を使用して点滅する色でオーバーライドする必要がありました。 –

関連する問題