から継承する独自のウィジェットMyToolButtonがありQToolButton
ます。paintEventで、元のから「背景」だけを描画したいQToolButton
。つまり、スタイル(クリック、ホバーなど)のみを描画する必要がありますが、テキストや画像は必要ありません。私が自分で描きたいこれらのもの(カスタムフォーマットなど)。私が電話するとQToolButton::paintEvent(ev)
、すべてが描かれています。画像とテキストをペイントから除外するにはどうすればよいですか?を使うべきだと思いますdrawControl()
が、drawPrimitive()
これらdrawComplexControl()
すべての状態を理解することはできません
質問する
1697 次
1 に答える
2
のソースコードvoid QToolButton::paintEvent(QPaintEvent *)
は次のとおりです。
QStylePainter p(this);
QStyleOptionToolButton opt;
initStyleOption(&opt);
p.drawComplexControl(QStyle::CC_ToolButton, opt);
QStylePainter::drawComplexControl
はQStyle::drawComplexControl
、純粋仮想関数であり、その実装は使用しているスタイルによって異なります。必要なのは、具体的な実装のソースコード(QWindowsXPStyle
またはなど)に移動し、実装をQGtkStyle
見つけて、で使用することです。のような単純なコントロールの場合、スタイルに依存せずに図面を簡単に書き直すことができます。再描画はもう少し難しい作業になります。のソースコードを使用することをお勧めします。drawComplexControl()
paintEvent
QPushButton
QToolButton
QCommonStyle
于 2013-03-26T19:55:56.447 に答える