Qt学习笔记 GtkDialog mapped without a transient parent. This is discouraged

 

编译环境:

ubuntu-18.04.2 

Qt Creator 4.9.1  Based on Qt 5.12.3 (GCC 5.3.1 20160406 (Red Hat 5.3.1-6), 64 bit)

 

QColorDialog

QColor color = QColorDialog::getColor(Qt::red,this,tr("选择颜色"));

报警:

Gtk-Message: 11:02:33.894: GtkDialog mapped without a transient parent. This is discouraged.

此报警也不会影响程序运行。

对于强迫症的人来说,可以采用其它方式来消除这个报警

    //QColor color = QColorDialog::getColor(Qt::red,this,tr("选择颜色"));
    QColor color(0,0,0);
    QColorDialog myColorDialog(color,this);
    //设置option
    myColorDialog.setOption(QColorDialog::DontUseNativeDialog);

    if( myColorDialog.exec() == QDialog::Accepted )
    {
        //获取当前选中的颜色
        color = myColorDialog.currentColor();
        qDebug() << color;
    }

myColorDialog.setOption(QColorDialog::DontUseNativeDialog);

使用Qt的标准颜色对话框而不是操作系统的本机颜色对话框。

运行结果(没有报错):

 

QFileDialog

 QString filename = QFileDialog::getOpenFileName(nullptr,tr("标题"),".","");

报警:

Gtk-Message: 11:02:33.894: GtkDialog mapped without a transient parent. This is discouraged.

换种方式

        //QString filename = QFileDialog::getOpenFileName(nullptr,tr("标题"),".","");
        QFileDialog filedialog;
        filedialog.setAcceptMode(QFileDialog::AcceptOpen);
        filedialog.setViewMode(QFileDialog::List);
        filedialog.setFileMode(QFileDialog::AnyFile);
        filedialog.setWindowTitle(tr("标题"));
        filedialog.setDefaultSuffix("txt");
        filedialog.setOption(QFileDialog::DontUseNativeDialog);
        if(filedialog.exec()==  QDialog::Accepted )
        {
            QStringList filePaths = filedialog.selectedFiles();
            QString filename =filePaths[0];
            qDebug() << filename;
        }

运行结果(没有报错):

 

QFontDialog

    bool ok;
    QFont font =QFontDialog::getFont(&ok);
    if(ok)
    {
        qDebug() << font;
    }

报警:

Gtk-Message: 11:02:33.894: GtkDialog mapped without a transient parent. This is discouraged.

换种方式

   QFontDialog fontdialog;
    fontdialog.setOption(QFontDialog::DontUseNativeDialog);
    if(fontdialog.exec()==  QDialog::Accepted )
    {
        QFont font = fontdialog.font();
        qDebug() << font;
    }

运行结果(没有报错):

 

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值