我正在开发 Qt GUI 应用程序。

我的问题是我将控制台用于另一个线程(它在其中写入了他的通信),主要问题是当我创建 QFileDialog (为了选择脚本文件)时,KDE 正在写入无用的信息(对我来说至少)。

有没有办法消除我的 QFileDialog 将任何内容写入控制台的所有可能性?有没有办法将主输出切换到另一个(无用的)目标?

我的代码(但我认为它不会真正帮助你):

void MyGUI::setPathWithFileExplorer()
{
  QFileDialog dlg;
  dlg.resize(320,240);
  QString fileName = dlg.getOpenFileName(this, tr("Open script file"), "~/", tr("Script Files (*.js)"));

  if(fileName != "")
    ui->editScriptPath->setText(fileName);
}

输出 :

kded(21003) Mollet::KioSlaveNotifier::onDirectoryEntered:“垃圾:/”“垃圾:/”“ file:// [通往我的用户文件夹的路径]” Kded(21003)Mollet :: Kioslavenotifier :: onDirectoryLeft:“ file:// [通往我的用户文件夹的路径]” Kded(21003)Mollet :: Kioslavenotifier :: OnDirectoryEntered:“ file:// [通往我的用户文件夹的路径]” kfilemodule(21676)ksambashareprivate :: testparmparamvalue:在运行testParm“从/ETC/SAMBA/SMB.CONF加载的服务文件OK的“加载SMB配置文件”时,我们遇到了一些错误。警告:设置“安全= ADS”不应与“密码服务器”参数结合使用。(默认情况下,Samba将发现正确的DC自动联系)。警告:您的某些共享名长度超过 12 个字符。某些较老的客户可能无法访问这些。(例如。windows9x,windowsme和smbclient在Samba 3.0之前。)”inotify_add_watch 失败:未经同意的 QFileSystemWatcher 权限:添加路径失败:/var/lib/samba/usershares

有帮助吗?

解决方案

我建议使用 kdebugdialog 进而 Deselect All. 。在这里您可以看到我的机器上的内联屏幕截图。

enter image description here

如果做不到这一点,你总是可以使用 QFile 将输出记录到专用文件中,然后在单独的提示或应用程序中监视它。

如果您继续这样做,您甚至可以查看 5.2 中添加的记录器功能(如果您碰巧能够使用该版本)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top