以下是使用Qt的示例代码,可以实现点击按钮跳出文件选择框,并限制只能显示.json文件:
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QFileDialog>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget window;
// 创建按钮并设置文本
QPushButton btn(&window);
btn.setText("选择JSON文件");
btn.setGeometry(50, 50, 200, 30);
// 设置文件类型过滤器,只显示.json文件
QStringList filters;
filters << "JSON 文件 (*.json)";
// 点击按钮时弹出文件选择框
QObject::connect(&btn, &QPushButton::clicked, [&]() {
QString fileName = QFileDialog::getOpenFileName(
&window,
"打开 JSON 文件",
"",
filters.join(";;")
);
// 如果用户选择了文件,则在控制台输出选中的文件路径
if (!fileName.isEmpty()) {
qDebug() << "选中的文件:" << fileName;
}
});
window.show();
return a.exec();
}
这段代码创建了一个窗口和一个按钮,并在点击按钮时弹出了一个文件选择框。其中filters
变量设置了只显示.json后缀的文件。当用户选择了一个json文件后,程序会在控制台输出该文件的路径。
如果需要将选中的json文件加载到程序中进行处理,可以在获取到fileName
后读取该文件内容。例如:
// 在获取到fileName后,读取该json文件内容
QFile file(fileName);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&file);
QString jsonStr = in.readAll();
qDebug() << "选中的JSON文件内容:" << jsonStr;
}