0

「関数型」プログラミング スタイルで画像を表示したい。基本的に、私は自分の画像に対していくつかのプロセスを実行し、結果を表示したい場合があります。だから私はしようとしています:

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;
}

しかし、表示関数の 2 回目の実行時にエラーが発生します。このロジックを維持しながら、この問題を解決するためのアイデアはありますか?

ありがとう

注: Qt 以外の外部ライブラリを含めたくありません。Qt ロジックの外で作業したいことは理解しています。

4

1 に答える 1

2

functional「スタイルで画像を表示する」という意味がよくわかりません。あなたが言いたいのは、画像の表示部分を行う関数が欲しいということだと思います。その場合、「機能的な」パラダイムが実際に何であるかについて、あなたの側に誤解があるようです.

それにもかかわらず、あなたの問題は非常に異なります。QApplication 宣言をメイン関数に移動する必要があります。

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 (ダイアログの作成と表示の概要)

于 2012-03-29T08:22:36.193 に答える