如何以"functional"编程风格显示 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声明移动到主函数中:
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(创建和显示对话框的良好概述)
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- Qt VTK交互风格的信号到小部件
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 程序崩溃并显示"std::out_of_range"错误
- Visual Studio 2019:插入多个C++风格的单行注释
- 如何在本地机器上运行c++和javascript客户端代码(hackerbank风格)
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 从数据库实时显示QT c++中的数据
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 显示错误输出的简单数组排序程序
- Qt自定义QPush按钮未显示在布局上
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 显示基于用户输入的整数的字符
- 如何以"functional"编程风格显示 QImage
- GDB Dis-Flavor设置为英特尔,但显示AT&T风格