スタイルシート用に独自のウィジェット クラスを有効にしたいのですが、これは ではなく、 qsssetStyleSheet(qss)スタイルシートのセレクターです。名前空間の "::" を "--"に置き換える必要があることは理解されています。
ここ (カスタム ウィジェットの Qt スタイルシート) 同様の質問を見つけましたが、それは 4 年以上前のものです。答えに基づいて、いくつかの詳細な質問があります。
a) https://stackoverflow.com/a/8817908/356726から、オーバーライドされた公開されたアプローチはpaintEventまだ有効ですか(Qt5.6/5.7)
void CustomWidget::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
b) 同じスレッド ( https://stackoverflow.com/a/22094319/356726 ) で、オーバーライドする必要はないと言われていますpaintEvent。わかりました、私に導きます:b1)paintEventとにかくオーバーライドするのは有害QFrameですか?b2) 他の基本クラスとは何QTableViewですか? QFrameこの特定の役割を持つ理由は何ですか?
c)そのトピックに関する公式の Qt ドキュメントを見つけた人はいますか? a の素敵なコードですが、それはどこから来たのですか? (ここ) 正直なところ、私はそれが何をするのか理解していません。
- 編集 -
paintEventダニエルは、その魔法のスニペットのソースをここ(QWidget段落)で指摘しています。同じ( 「サポートのみ..」)が に対して言われているのは興味深いことです。QDialogこれは、そこでもスニペットを使用する必要があることを意味する可能性があります。デフォルトでそのスニペットをpaintEventofに追加しない理由がわかりません。QWidget