3

我正在开发一个 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);
}

输出 :

您有一些超过 12 个字符的共享名称。一些老客户可能无法访问这些内容。(例如,Samba 3.0 之前的 Windows9x、WindowsMe 和 smbclient。)“ QInotifyFileSystemWatcherEngine::addPaths:inotify_add_watch 失败:权限不符合 QFileSystemWatcher:添加路径失败:/var/lib/samba/usershares

4

1 回答 1

3

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

在此处输入图像描述

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

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

于 2014-01-10T14:27:26.290 回答