10

こんにちは、私は QT クリエーターの初心者です。Q メインウィンドウの背景画像を設定するために、さまざまなことを試しました。画像を含むリソース フォルダーを追加しました。UIにsetstylesheetを使って追加してコーディングしてみました。UI を使用すると画像が表示されますが、実行すると何も表示されません。背景として持っているポーカーテーブルの画像を置き、その上にプッシュボタンなどを配置できるようにしたい.

main.cpp:

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();


    return a.exec();
}

メインウィンドウ.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setStyleSheet("{background-image: url(:/images/images/PokerTableBackground.jpg);}");
}

MainWindow::~MainWindow()
{
    delete ui;
}

私が言ったように、私はこれをやってみましたが、画像をUIに通しましたが、どちらも機能しませんでした。全体の背景として画像を設定したい。

私もこれを使ってみました:

QWidget *pic = new QWidget(ui->tab);
    pic->setStyleSheet("background-image: url(:/images/images/PokerTableBackground.jpg)");
    pic->setGeometry(QRect(10,10,220,48)); // your location and size.
4

3 に答える 3

24

次の手順で背景画像を追加できMainWindowます。

  1. を作成しQPixmap、イメージへのパスを指定します。
  2. を作成し、それをピックスマップでQPalette設定し、それをに設定します。QBrushColorRoleQPalette::Background
  3. MainWindowパレットを作成したパレットに設定します。

MainWindow例として、次の行をクラスのコンストラクターに追加できます。

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QPixmap bkgnd("/home/user/Pictures/background.png");
    bkgnd = bkgnd.scaled(this->size(), Qt::IgnoreAspectRatio);
    QPalette palette;
    palette.setBrush(QPalette::Background, bkgnd);
    this->setPalette(palette);
}

これの利点は、css スタイルシート構文を使用または学習することなく、プログラムで背景画像を変更/変更できることです。

于 2014-04-22T18:53:26.840 に答える
12

中央のウィンドウの背景スタイルシートを設定できます。

this->centralWidget()->setStyleSheet("background-image:url(\"bkg.jpg\"); background-position: center; ");

コンストラクタでは、次のようになります。

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    this->centralWidget()->setStyleSheet(
         "background-image:url(\"bkg.jpg\"); background-position: center;" );
}
于 2015-08-15T05:32:41.587 に答える