1

私の知る限り、ウィジェットの背景を画像にする方法は、qstylesheetを次のように変更することです。

background-image: url(<your image here>);

QDockWidgetのメインウィジェットでない限り、これは機能しているようです。

これは私がしたことです:

  1. 新しいqtウィジェットプロジェクトを作成します
  2. オブジェクトQWidgetを作成します。ボタンを1つか2つ置いて、使用されていることを確認します。
  3. スタイルシートを手順2で作成したウィジェットに変更して、次のものを含めます。background-image: url(<your image here>);
  4. MainWindow uiファイルで、を追加しQDockWidget、そのメインウィジェットをQWidget手順2で作成したものにプロモートします。

プログラムを実行すると、QDockWidgetの背景がデフォルトのままであることがわかりますが、ウィジェットに追加したボタンまたはラベルは、選択した画像に背景を変更しています。

qss行をからbackground-imageに変更しbackground-color、画像ではなく色を選択すると、ウィジェットの色が変更されます。

QDockWidget背景画像(背景色だけでなく)を与えるための提案はありますか?

4

1 に答える 1

0

どうやらあなたがする必要があるのは、ウィジェットの痛みのイベントを次のように上書きすることだけです。

void MyWidget::paintEvent(QPaintEvent *)
{
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
于 2012-05-13T15:56:15.290 に答える