一个指示灯的程序 为啥会报错: error4430:缺少类型说明符-假定为int 注意c++不支持默认int
是你这个setLED函数没有写返回类型啊
如果不需要返回值,那加个void啊
最开始概述的时候说过QLabel是文字、图片等信息的展示框,前面用了三个小节介绍了文字展示部分的功能,接下来我们来学习一下如何利用QLabel进行图片展示。
首先想要展示一个图片就必须先正确的读取和加载它,所以接下来介绍如何在Qt框架下读取、加载图片。
判断图片是否存在
首先,图片的展示要考虑到异常处理,如果想要展示的图片并不在所指定的位置时,我们不能让程序就这么轻易的狗带,这时我们要灵活应变,展示一张默认图片或者干脆开摆直接搞成纯色。
这里就要介绍到Qt读取外部信息的重要头文件<QFile>,QFile是Qt框架下的文件流,它被广泛应用于各种文件的读取——txt文本、jpg/png/bmp图片等等。
但是判断文件是否存在却要使用<QFileInfo>下的isFile()方法(虚晃一枪想不到吧哈哈哈)
使用方法如下:
// 实例化一个QFileInfo对象
// 在其中加上文件的相对或绝对路径
QFileInfo file("./阿巴阿巴.jpg");
if (!file.isFile())
{
// 如果该文件不存在,则执行if中的代码
}
else
{
// 文件存在则执行else中的代码
}
来个小例程:(判断"background_image.jpg"是否在当前的目录下,不在就把窗口背景设置为白色,否则设置成天蓝色)
.h中引入<QFileInfo>
.cpp中进行判断:
QFileInfo file("./background_image.jpg");
if (!file.isFile())
{
this->setStyleSheet("QWidget {background-color:white;}");
}
else
{
this->setStyleSheet("QWidget {background-color:skyblue;}");
}
图片的读取与加载
QLabel中显示的图片的读取与加载是利用QPixmap这一头文件进行的。其流程为:
1.初始化一个QPixmap对象,如:
// 实例化一个对象
QPixmap pix = QPixmap();
2. 利用QPixmap的load方法进行读取和加载
// 这里的file_name是要加载的图片的地址
// 同时注意这里的file_name类型为QString
pix.load(file_name);