[英]How do I display a QImage in a “functional” programming style
我想以“功能”編程風格顯示圖像。 基本上,我在我的圖像上操作了許多過程,有時我想顯示結果。 所以我想:
int display(string file, int argc, char *argv[])
{
QApplication a1(argc,argv);
QImage myImage;
myImage.load(file.c_str());
QLabel myLabel;
myLabel.setPixmap(QPixmap::fromImage(myImage));
myLabel.show();
return a1.exec();
}
int main(int argc, char *argv[])
{
MyImageDataStructure img;
img.erosion(5);//process 1
img.save("lenaero.png");
display("lenaeor.png",argc,argv); // display the first result
img.dilation(5);//process 2
img.save("lenaopening.png");
display("lenaopening.png",argc,argv); // display the second result
return 1;
}
但是在第二次執行顯示功能時,會發生錯誤。 在保持這種邏輯的同時,您有什么想法來解決這個問題嗎?
謝謝
注意:我不想包括除Qt之外的外部庫,我知道我想在Qt邏輯之外工作。
我真的不明白你的意思是“以functional
風格顯示圖像”。 我想你的意思是你想要一個函數來為圖像做顯示部分。 在這種情況下,你似乎對於“功能”范式究竟是什么存在誤解。
不過,你的問題非常不同。 您需要將QApplication聲明移動到main函數中:
int main(...) {
QApplication a(argc, argv);
// ...
}
並將其移出display()
函數。
編輯
我重新閱讀了你的代碼,但它有很多問題。 每次要顯示圖像時,都不應該創建單獨的應用程序。 更好的方法是使用QDialog
。 每次要顯示圖像時,創建一個對話框,標簽為圖像並在其上調用show
。
有用的鏈接:
http://qt-project.org/doc/qt-4.8/QDialog.html
http://sector.ynet.sk/qt4-tutorial/my-first-qt-gui-application.html (創建和顯示對話框的好概述)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.