gpt4 book ai didi

c++ - 如何通过 paintEvent 在 subview 中绘制图像

转载 作者:太空狗 更新时间:2023-10-29 23:06:16 25 4
gpt4 key购买 nike

我是中国人,英语不好,所以我展示代码来表达自己。

class Widget:public QWidget 
{
private:
//As a child object of Widget object
QLabel* label;

};

// Override the paintEvent
void Widget::paintEvent(QPaintEvent* event)
{
//How to draw a picture in the QLabel not in the full Widget's view,thx!!
}

最佳答案

首先,您需要在构造函数中初始化您的标签,添加如下内容:

void Widget::Widget()
{
label=new QLabel(this);
}

然后你的 paintEvent 做这样的事情 -

void Widget::paintEvent(QPaintEvent* event)
{
// create QPixmap or QImage object or how else you store it and load it to label
QImage img("./myimage.jpg");
label->setPixmap(img.pixmap());
}

它将绘制在标签上,但默认情况下标签具有不断增长的 sizePolicy - 如果您的小部件没有任何其他对象,它将调整大小以填充尽可能多的空间 - 您的标签将占据整个空间,所以最好将 QLabel 添加到某些布局 (QGridLayout) 并且您需要将 QLabel 的 setSizePolicy 设置为 QSizePolicy::Maximum

关于c++ - 如何通过 paintEvent 在 subview 中绘制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16384566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com