Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何用QT绘制平铺图像_C++_Image_Qt - Fatal编程技术网

C++ 如何用QT绘制平铺图像

C++ 如何用QT绘制平铺图像,c++,image,qt,C++,Image,Qt,我正在QtCreator的设计器中用C++/Qt编写接口。选择哪个元素作为带有背景图像的矩形 第二个问题:如何绘制平铺图像?我有一个大小为(1×50)的和图像,我想为父宽度渲染它。有什么想法吗 QBrush:不正确使用 纹理模式 如果你只是想展示一个你可以使用的图像。要使用平铺图像制作背景,请使用QImage构造一个。然后,如果您使用的是例如,您可以设置为背景画笔波什 下面是一个用平铺图像“document.png”填充整个主窗口的示例: intmain(intargc,char*argv[]

我正在QtCreator的设计器中用C++/Qt编写接口。选择哪个元素作为带有背景图像的矩形

第二个问题:如何绘制平铺图像?我有一个大小为(1×50)的和图像,我想为父宽度渲染它。有什么想法吗


QBrush:不正确使用 纹理模式


如果你只是想展示一个你可以使用的图像。要使用平铺图像制作背景,请使用QImage构造一个。然后,如果您使用的是例如,您可以设置为背景画笔波什

下面是一个用平铺图像“document.png”填充整个主窗口的示例:

intmain(intargc,char*argv[]){
QApplication应用程序(argc、argv);
QMainWindow*mainWindow=新的QMainWindow();
Qgraphicscene*场景=新的Qgraphicscene(100100100100);
QGraphicsView*视图=新的QGraphicsView(场景);
主窗口->设置中心Widget(视图);
QImage*image=新的QImage(“document.png”);
如果(image->isNull()){

很抱歉,我不明白如何用画笔在我的窗口中填充正确的矩形。在哪里画画?在
paintEvent
?你只想用平铺图像填充窗口吗?你有什么样的小部件想把图像放在上面?@dusty campbell是的,我只需要用平铺纹理填充我主窗口中的某个矩形。我所以,如果你创建一个QGraphicsView,然后用QImage将backgroundBrush设置为QBrush create,我想你会得到你想要的。
mTopMenuBg = QPixmap("images/top_menu_bg.png");
mTopMenuBrush = QBrush(mTopMenuBg);
mTopMenuBrush.setStyle(Qt::TexturePattern);
mTopMenuBrush.setTexture(mTopMenuBg);

ui->graphicsView->setBackgroundBrush(mTopMenuBrush);
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();
}