gpt4 book ai didi

c++ - 在调用 exec 之前更新 Qt Images 不起作用

转载 作者:行者123 更新时间:2023-11-30 02:30:22 26 4
gpt4 key购买 nike

我需要创建一个显示图像的简单 GUI,此示例中的图像可以更改,并且 GUI 需要更新其内容。

我在我的小部件类中编写了以下更新函数:

void myClass::updatePic() {
QPixmap pix("./pic.png");
int width = ui->picLabel->width();
int height = ui->picLabel->height();
ui->picLabel->setPixmap(pix.scaled(width,height,Qt::KeepAspectRatio));}

我尝试按以下方式使用它:

int main(int argc, char *argv[]) {
QApplication a(argc, argv);
myClass w;
w.show();

sleep(3);
w.updatePic();

sleep(3);
w.updatePic();

sleep(3);
return a.exec();}

但是直到我们到达 a.exec() 行,窗 Eloquent 打开并且不显示图像,然后它打开最后一张图像。我做错了什么?


编辑:

澄清一下,改变图片的触发来自于外部程序(具体来说,gui会是ros中的一个节点,由另一个节点触发)。有没有办法通过外部程序从 gui 按下按钮?计时器会工作,但我不喜欢这种“忙等待”式的解决方案。

感谢目前为止的建议

最佳答案

exec 运行 QT 事件循环,其中包括呈现小部件。

因此将您的 updatePic 调用移动到您的小部件中并通过例如按钮或在显示事件中激活它

关于c++ - 在调用 exec 之前更新 Qt Images 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38735823/

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