简单的Qt5应用程序在终端上输出空白行

时间:2018-09-27 20:03:04

标签: linux qt qt5

运行以下简单的Qt5应用程序时,我在终端上看到奇怪的行为:

car = [{id: "1", brand: "Opel"}, {id: "2", brand: "Haima"},{id: "3", brand: "Toyota"}]

当我按如下方式运行该程序时,输出为:

#include <QtWidgets/QApplication>
#include <QtWidgets/QPushButton>

int main(int argc, char* argv[]) {
  QApplication app(argc, argv);
  QPushButton pb;
  pb.show();
  return app.exec();
}

因此,即使将所有输出重定向到ton@willow:~/development/gb86 $ install/bin/gb86 &> /dev/null ton@willow:~/development/gb86 $ ton@willow:~/development/gb86 $ ,仍然会导致两次Enter键被发送到终端。一些观察:

  • 从非X11终端运行应用程序并设置正确的/dev/null不会显示多余的空行。
  • 链接到同一系统上相同Qt5库的其他Qt5应用程序具有相同的行为。从终端启动的其他非Qt5应用程序没有此行为。
  • 窗口管理器是i3,终端模拟器无关紧要,我尝试了几种不同的方法(st,Alacritty,Kitty),并且所有行为都相同。更改$DISPLAY也不起作用。
  • 例如,将PS1更改为单个“ $”字符不会改变行为。
  • 更改shell(Zsh / Bash)不会改变行为。

Qt版本为5.11.2。有人知道这里发生了什么吗?关于如何调试的任何提示?有人可以复制吗?

1 个答案:

答案 0 :(得分:0)

在可以显示不可打印字符的终端中运行应用程序。它可能正在发出一些格式化的“转义”代码。