我需要創建一個顯示圖像的簡單GUI,此示例中的圖像可以更改,GUI需要更新其內容。更新Qt圖像在調用exec之前不起作用
我在我的窗口小部件類寫了下面的更新功能:
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()
行,然後打開最後一張圖像。我究竟做錯了什麼?
編輯:
澄清,觸發用於改變圖像來自外部程序(具體地說,GUI將在ROS的節點,並且將另一個節點來觸發)。有沒有一種方法可以通過外部程序從gui中按下按鈕?計時器將工作,但我不喜歡這種「忙等待」風格的解決方案。
感謝您的建議,到目前爲止
觸發器來自外部程序,QT GUI僅顯示結果並且沒有按鈕。 – user44874