0

Windowsとして使用しているQWidgetの子にウィジェットが表示されない理由を理解しようと(グーグルで)何時間も費やしました。

子は主に QLabel と一部の QSlider です。レイアウトは QGridlayout です

ここに私のウィンドウコードの一部があります:

FenPrincipale::FenPrincipale()
    {
        this->setWindowTitle("Premier Test");
        this->resize(400, 200);
        QPalette palette;
        palette.setBrush(this->backgroundRole(), QBrush(QImage("images/metal400x200.png")));

        this->setPalette(palette);
        /*
        this->setStyleSheet("background-image: url(images/metal400x200.png); "
                            "background-position: top left; "
                            "background-repeat: repeat-xy;"
                            );
        */

        buildChildren();
        buildLayout();

        this->setLayout(layout_principale);
    }

編集:

私の子供たちはどのように構築されていますか

void FenPrincipale::buildChildren()
{
    m_title = new QLabel("MonTest");
    m_nextPageButton = new QLabel(">");

    m_line = new QLabel("Slide here");
    m_labelSlider = new QSlider;
    m_result = new QLabel("Result");

    /* 
     * Other children is set here...
    */
}

出来上がりの結果:

ここに画像の説明を入力

背景を設定するためにフォントやその他の方法を変更しようとしましたが、背景は常に他のウィジェットの上に表示されます。

何か不足していますか?

4

1 に答える 1

0

スタイルシートの実装に近づいたようです。次の方法で正しい結果が得られます。

setStyleSheet("QMainWindow { background-image: url(:/images/metal400x200.png) } ");
于 2012-10-06T01:31:58.917 に答える