加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何使用QT绘制平铺图像

发布时间:2020-12-16 09:34:17 所属栏目:百科 来源:网络整理
导读:我正在QtCreator的设计师中编写C / Qt界面.用一些背景图像选择制作哪个元素作为矩形? 第二个问题:如何绘制平铺图像?我有和大小(1×50)的图像,我想渲染它的父宽度.有任何想法吗? mTopMenuBg = QPixmap("images/top_menu_bg.png");mTopMenuBrush = QBrush(
我正在QtCreator的设计师中编写C / Qt界面.用一些背景图像选择制作哪个元素作为矩形?

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

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

ui->graphicsView->setBackgroundBrush(mTopMenuBrush);

QBrush: Incorrect use of
TexturePattern

解决方法

如果您只想显示图像,可以使用 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);
    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();
}

结果应用:

或者,似乎您可以将style sheets与任何窗口小部件一起使用,并更改窗口小部件上的background-image属性.这与QtDesigner有更多的集成,因为您可以在QtDesigner中设置样式表和图像.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读