2011-04-25 33 views
3

QtCreatorのデザイナーでC++/Qtとのインターフェイスを作成しています。いくつかの背景画像を使って矩形を作るために選んだ要素は何ですか?Qtでタイル画像を描画する方法

2番目の質問:タイル画像を描画する方法は?私はサイズと画像(1×50)を持っていて、それを親の幅でレンダリングしたい。何か案は?


mTopMenuBg = QPixmap("images/top_menu_bg.png"); 
mTopMenuBrush = QBrush(mTopMenuBg); 
mTopMenuBrush.setStyle(Qt::TexturePattern); 
mTopMenuBrush.setTexture(mTopMenuBg); 

ui->graphicsView->setBackgroundBrush(mTopMenuBrush); 

QBrush:あなただけの画像を表示したい場合は TexturePatternを誤って使用すると、

答えて

7

あなたはQImageを使用することができます。タイル張りの画像を背景にするには、QImageを使用してQBrushを作成します。たとえば、QGraphicsSceneを使用していた場合は、burshを背景ブラシとして設定できます。ここで

はタイル張りの画像「document.png」で全体のメインウィンドウを埋める例です。

int main(int argc, char *argv[]) { 
    QApplication app(argc, argv); 
    QMainWindow *mainWindow = new QMainWindow(); 

    QGraphicsScene *scene = new QGraphicsScene(100, 100, 100, 100); 
    QGraphicsView *view = new QGraphicsView(scene); 
    mainWindow->setCentralWidget(view); 

    QImage *image = new QImage("document.png"); 
    if(image->isNull()) { 
     std::cout << "Failed to load the image." <<std::endl; 
    } else { 
     QBrush *brush = new QBrush(*image); 
     view->setBackgroundBrush(*brush); 
    } 

    mainWindow->show(); 
    return app.exec(); 
} 

たアプリ:また
screen shot

、あなたが使うことができたように思いstyle sheetsにウィジェットを追加し、ウィジェットのbackground-imageプロパティを変更します。 QtDesignerにスタイルシートとイメージを設定できるので、QtDesignerとの統合が強化されています。

+0

申し訳ありませんが、そのブラシで私のウィンドウ内の正確なrectを入力する方法を理解できません。そして、どこを引くのですか? 'paintEvent'では? – Ockonal

+0

タイル画像でウィンドウを埋めるだけですか?画像を置いておきたいウィジェットは、どのようなウィジェットですか? –

+0

@ dusty-campbellええ、私はちょうどタイルテクスチャと私のメインウィンドウでいくつかのrectを埋める必要があります。私はヘルパーウィジェットが何を使うのか気にしない。 – Ockonal