我正在尝试制作一个简单的小部件,其中包含一个显示文件名的 lineedit 和一个打开文件对话框的按钮。现在我想检查文件扩展名是否有效,在这种情况下,图像文件以 jpg、png 或 bmp 结尾。我用 QFileInfo 和 QList 解决了这个问题,这段代码在我的 btn_clicked 插槽中:
QString filename = QFileDialog::getOpenFileName(this, tr("Select an image File", "", tr("Image Files (*.bmp *.jpg *.png);; All Files(*)"));
QList<QString> ext_list;
ext_list<<"bmp"<<"jpg"<<"png";
QFileInfo fi(filename);
QString ext = fi.suffix();
if (ext_list.contains(ext)){
// lineedit->setText(filename);
}
else {
QMessageBox msgBox;
msgBox.critical(0, "Error", "You must select a valid image file");
它有效,但有没有更简单/优雅的方式来实现目标?谢谢你的帮助。