代码之家  ›  专栏  ›  技术社区  ›  Ton van den Heuvel

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

  •  8
  • Ton van den Heuvel  · 技术社区  · 6 年前

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

    #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 $
    

    /dev/null 似乎仍然会导致两个回车键被发送到终端。一些观察结果:

    • $DISPLAY 不显示额外的空行。
    • 链接到同一系统上相同Qt5库的其他Qt5应用程序具有相同的行为。从终端启动的其他非Qt5应用程序不具有此行为。
    • 窗口管理器是i3,终端仿真器没关系,我试过几个不同的(st,Alacrity,Kitty),都有相同的行为。改变 $TERM 也没有效果。
    • 例如,将PS1更改为单个“$”字符不会更改行为。

    Qt版本是5.11.2。有人知道这是怎么回事吗?关于如何调试这个有什么提示吗?有人能复制这个吗?

    0 回复  |  直到 5 年前
        1
  •  0
  •   transconductance    5 年前

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