簡體   English   中英

如何以“功能”編程風格顯示QImage

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM