我是初学者。我的项目的一部分是使用QpushButton切换显示在QLabel中的图像,第一步我将打开一个文件夹并为.jpg设置过滤器,然后将其路径保存在QString列表中。这是我的代码:
client file
$.ajax({
type:"POST",
url:"modify_cbndtb.php",
data: {cabinetNum:id},
success:function (data) {
$('#1U').val(data[0].num1);
$('#11U').val(data[0].num2);
$('#2U').val(data[0].num3);
$('#12U').val(data[0].num4);
}
});
这个文件夹中有很多图片,我知道为什么我失败了,因为每次按下使用该功能的按钮时,整数我总是等于0.所以任何人都可以给我一个建议吗?
答案 0 :(得分:0)
要通过QFileDialog
方法选择我建议使用getExistingDirectory()
课程的文件夹。另一个改进是生成仅负责放置新图像的功能。
还有一点需要注意entryList()
返回过滤器文件的名称,但这不是完整路径,为此我们使用filePath()
函数。
<强> *的.h 强>
private:
QDir dir;
QStringList images;
int index;
void updatePixmap();
*。CPP
{//constructor
ui->setupUi(this);
index = 0;
QString dirname = QFileDialog::getExistingDirectory(this, "Select directory", "/home/jin/test/");
if(!dirname.isEmpty()){
dir = QDir(dirname);
dir.setNameFilters(QStringList()<< "*.jpeg" << "*.jpg");
images = dir.entryList();
}
updatePixmap();
}
void data_labeling::on_next_clicked()
{
updatePixmap();
}
void data_labeling::updatePixmap()
{
if(images.count() > 0){
int w = ui->face_pic->width();
int h = ui->face_pic->height();
QImage image(dir.filePath(images[index]));
ui->face_pic->setPixmap(QPixmap::fromImage(image).scaled(h,w,Qt::KeepAspectRatio));
index = (index +1) % images.count();
}
}