• QFileDialog不触发信号fileSelected、filesSelected等信号?


    自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

    https://www.cnblogs.com/bclshuai/p/11380657.html

    扫码关注公众号

    1.目标

    打开文件选择对话框之后,用鼠标选择图片文件,当图片文件的数量超过4张时给出提示,选择多了。


    2.实现步骤

    用QFileDialog的信号fileSelected、filesSelected来连接信号槽,实现文件数量选择的判断。

    (1)新建QFileDialog对象

    m_fileDialog = new QFileDialog(this);
        m_fileDialog->setFileMode(QFileDialog::ExistingFiles);
        m_fileDialog->setOption(QFileDialog::DontUseNativeDialog, true);//选择文件不触发信号,设置仍然无效
    (2)连接信号槽

    //尝试多种连接方式,都无法触发

     //connect(m_fileDialog, SIGNAL(filesSelected(const QStringList &files)), this, SLOT(SlotFileSelsect(const QStringList &files)));

        //connect(m_fileDialog, SIGNAL(filesSelected(const QStringList &)), this, SLOT(SlotFileSelsect(const QStringList &)));
        connect(m_fileDialog, &QFileDialog::filesSelected, this, &FaceMatch::SlotFileSelsect);

    (3)定义槽函数

    void FaceMatch::SlotFileSelsect(const QStringList &files)
    {
        //if (files.size()>4)
        {
            QMessageBox::information(NULL, "提示", "最多只能选四张图片", QMessageBox::Yes, QMessageBox::Yes);
        }
    }

    (4)打开文件夹选择文件

    void FaceMatch::SlotAddNewPic()
    {
        QStringList fileNameList = m_fileDialog->getOpenFileNames(this, tr("添加图片"), "D:/", tr("Images(*.png *jpeg *jpg *bmp *tif *.PNG *JPEG *JPG *BMP *TIF)"),NULL, QFileDialog::DontUseNativeDialog);
        if (fileNameList.size()>0)
        {
            QString strPath = "";
            QString strFileName = "";
            for (int i = 0; i<fileNameList.size(); i++)
            {
                strPath = fileNameList[i];
                if (!strPath.isEmpty())
                {
                    strFileName = QFileInfo(strPath).baseName();
                    AddPicToList(strPath);
                }

            }

        }
    }

    4.问题

    尝试了各种信号槽连接方式,尝试了getOpenFileNames设置QFileDialog::DontUseNativeDialog或者m_fileDialog->setOption(QFileDialog::DontUseNativeDialog, true)都无法实现在选择文件时触发信号。

    有大神解决,欢迎留言评论。

  • 相关阅读:
    毕业设计:专业填写格式
    关于《毕业设计指导记录》的建议
    毕业设计通知
    毕业设计答辩:幻灯片内容制作要点
    Latex 模版生成会议论文 不显示Keywords,而是显示 Index Terms- ,改成Keywords 方法
    mysql information_schema
    C# odbc
    cwRsync 配置文件详解
    Rsync
    openssl rsa 私钥 PKCS8私钥 公钥
  • 原文地址:https://www.cnblogs.com/bclshuai/p/13739265.html
Copyright © 2020-2023  润新知