QT中的标准对话框

QFileDialog 对话框

打开单个文件

void myDialog::on_openFileButton_clicked()
{
    // 获取当前路径
    QString curPath = QDir::currentPath();
    QString dlgTitle = "选择一个文件";
    QString filter = "文本选择(*.txt);;图片文件(*.jpg *.gif);;所有文件(*.*)";
    QString aFileName = QFileDialog::getOpenFileName(this, dlgTitle, curPath, filter);
    if(!aFileName.isEmpty())
    {
        ui->plainTextEdit->appendPlainText(aFileName);
    }
}

参数解释:
第一个参数:表示该窗口的父对象
第二个参数:表示该窗口的标题
第三个参数:表示该窗口的默认工作路径
第四个参数:表示过滤器,用于显示指定后缀的文件,可以设置多组,每一组之间需要使用两个分号隔开,同一组内不同后缀之间用空格隔开。
返回值:如果成功选择了一个文件,那么会返回该文件的完整路径,如果点击取消,那么将会返回一个空。
打开多个文件

void myDialog::on_pushButton_clicked()
{
    // 获取当前路径
    QString curPath = QDir::currentPath();
    QString dlgTitle = "选择一个文件";
    QString filter = "文本选择(*.txt);;图片文件(*.jpg *.gif);;所有文件(*.*)";
    QStringList fileNames = QFileDialog::getOpenFileNames(this, dlgTitle, curPath, filter);
    for(int i = 0; i < fileNames.count(); i++)
    {
        ui->plainTextEdit->appendPlainText(fileNames.at(i));
    }
}

可以看出参数和打开单个文件时是一样的
返回值:是一个QStringList对象,其中存储了所选文件们的完整路径。
选择目录

void myDialog::on_dirSelectBtn_clicked()
{
    // 得到可执行文件所在目录
    QString curPath = QCoreApplication::applicationDirPath();
    QString dlgTitle = "选择一个目录";
    QString selectedDir = QFileDialog::getExistingDirectory(this,
            dlgTitle,curPath,QFileDialog::ShowDirsOnly);
    if(!selectedDir.isEmpty())
    {
        ui->plainTextEdit->appendPlainText(selectedDir);
    }
}

第一个参数:表示该窗口的父对象
第二个参数:表示该窗口的标题
第三个参数:表示该窗口的默认工作路径
第四个参数:QFileDialog::ShowDirsOnly表示只显示目录
返回值:所选目录的完整路径
选择保存文件名
选择一个保存文件,如果选择的是一个已经存在的文件,会提示是否覆盖源文件,如果提示覆盖,则会返回已存在文件的完整路径,但是不会对已有文件进行任何处理,如需处理需要自己编码实现。

void myDialog::on_fileSaveBtn_clicked()
{
    // 得到可执行文件所在目录
    QString curPath = QCoreApplication::applicationDirPath();
    QString dlgTitle = "保存文件";
    QString filter = "h 文件(*.h);;C 文件(*.c);;所有文件(*.*)";
    QString saveFileName = QFileDialog::getSaveFileName(this, dlgTitle, curPath, filter);
    if(!saveFileName.isEmpty())
    {
        ui->plainTextEdit->appendPlainText(saveFileName);
    }
}

参数与返回值同选择一个文件。

选择颜色

void myDialog::on_colorSelectBtn_clicked()
{
    QPalette pal = ui->plainTextEdit->palette();// 获取现有的palette
    QColor iniColor = pal.color(QPalette::Text); //现有的文件颜色
    QColor color = QColorDialog::getColor();//选择颜色
    if(color.isValid())
    {
        pal.setColor(QPalette::Text, color);
        ui->plainTextEdit->setPalette(pal);
    }
}

返回值:一个QColor变量,如果在选择的时候取消则返回一个无效的颜色变量。
isValid方法:当颜色是有效的时候,返回真,否则返回假
setPalette方法:修改当前文本的颜色
颜色对话框

void myDialog::on_fontSelectBtn_clicked()
{
    QFont iniFont = ui->plainTextEdit->font();//获得字体
    bool ok = false;
    QFont font = QFontDialog::getFont(&ok, iniFont);
    if(ok)
    {
        ui->plainTextEdit->setFont(font);
    }
}

因为颜色选择对话框没有与颜色选择对话框类似的isValid方法,所以我们需要传入一个ok变量的地址,然后用这个变量来判断是否成功得到了字体变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值