QFileDialog的使用

QFileDialog是使用最高的对话框之一,分打开和保存两类,基本用法简单.

1.基本用法:

QFileDialog w;
 w.setAcceptMode(QFileDialog::AcceptOpen);   //AcceptOpen打开,AcceptSave保存文件
w.setFileMode(QFileDialog::ExistingFiles);

w.setOption(QFileDialog::ReadOnly, true);


w.setWindowTitle(QString("我叫BOY"));
w.setDirectory(QString("./"));

w.setNameFilter(QString("所有文件(*.*)"));

if (w.exec())
{

}

如果只是基本用法的话,其实直接用静态函数就可以了,你们懂的 QFileDialog::getOpenFileName(this, "boy", "./", "ALL FILE(*.*)");


2.进阶用法:

如果要定制自己的东西就要写多点了,比如改界面上的字,设置左边条有什么,是否可编辑,,默认后缀之类的,注意有四个信号可能会很有用,有两个信号是接受后才触发

直接放代码了汗:

QFileDialog w(this);
connect(&w, SIGNAL(currentChanged(const QString)), this, SLOT(currentChangedSlot(const QString)));   //选择改变

connect(&w, SIGNAL(fileSelected(const QString&)), this, SLOT(iamhereSlot()));    //文件被选择并接受


w.setAcceptMode(QFileDialog::AcceptOpen); //AcceptOpen打开,AcceptSave保存
w.setFileMode(QFileDialog::ExistingFiles); //显示什么类型文件:文件夹,文件,快捷方式....
w.setOption(QFileDialog::ReadOnly, true); //

w.setWindowTitle(QString("我叫BOY"));
w.setDirectory(QString("./"));
w.setNameFilter(QString("所有文件(*.*);;a(*.*);;b(*.*)"));
w.selectFilter(QString("a(*.*)")); //默认过滤器
 //w.setDefaultSuffix(QString("avi"));  //保存默认后缀
QList<QUrl> urls;
 urls << QUrl::fromLocalFile("./")    //我的电脑
<< QUrl::fromLocalFile(QDesktopServices::storageLocation(QDesktopServices::DesktopLocation))
<< QUrl::fromLocalFile(QDesktopServices::storageLocation(QDesktopServices::MusicLocation))
<< QUrl::fromLocalFile("c:/qt");

w.setSidebarUrls(urls);  //设置左边框有什么路径


w.setLabelText(QFileDialog::LookIn, QString("查找"));   //界面字

...............................

...............................


w.restoreState(m_array);  //还原上次状态,只有:布局,路径和历史记录
if (w.exec())
{
QStringList filePaths = w.selectedFiles();
if (!filePaths.isEmpty())
{
for (int i=0;i<filePaths.size();i++)
{
qDebug() << filePaths[i];
}
}
m_array = w.saveState();
}




写在后面:

QFileDialog不知道为什么打开这么慢!!!现在也没去研究,知道的朋友求解释求链接啊~~~~









  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值