转载自http://alanshuxin.blog.sohu.com/165100687.html
void MainWindow::open()
{
if (okToContinue()) {
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open Spreadsheet"), ".",
tr("Spreadsheet files (*.sp)"));
if (!fileName.isEmpty())
loadFile(fileName);
}
}
open()槽函数对应于File/Open菜单 。他首先调用okToContinue()函数来处
理任何未保存的更改。然后使用静态函数QFileDialog::getOpenFileName() 来
获取用户的文件名。该函数会弹出一个对话框,提示用户选择一个文件,以字符
串的形式返回一个文件名,如果用户选择cancel,将返回空字符串。
QFileDialog::getOpenFileName() 函数的第一个参数指的是父部件。对话框的
父子关系不像其他部件,对话框是一个独立是部件,如果他有父部件,就默认在
父部件的中间偏上位置,子对话框也响应父部件的任务项。
第二个参数是我们设置的对话框的标题。第三个参数告诉我们它开始的路径,本
例是在当前目录下。
第四个参数设置文件过滤器。一个文件过滤器包含描述性文字和通配符。如果我
们除了支持电子表格自身文件格式外还需要支持逗号分割文件和Lotus1-2-3文件
,我们需要这样设置过滤器: