【问题标题】:Qt5 application wont draw any windows on UbuntuQt5 应用程序不会在 Ubuntu 上绘制任何窗口
【发布时间】:2016-07-11 22:21:30
【问题描述】:

我有一个旧的 Qt4 代码,我移植到 Qt5 并构建(gcc4.8,Ubuntu)。该程序不显示任何 GUI 窗口,但可以很好地打印其控制台输出。

最后,我将整个main() 减少到下面的最小代码,并且得到了相同的行为:打印“exec...”并且程序静默运行(不退出,不崩溃),但没有窗口出现。

我应该考虑什么问题?

#include <QApplication>
#include <QWidget>

#include <iostream>

int main (int argc, char **argv)
{
    QApplication app(argc, argv);

    QWidget window;

    window.resize(250, 150);
    window.setWindowTitle("Simple example");
    window.show();
    std::cout << "exec...\n";
    return app.exec();
}

【问题讨论】:

  • 您在哪里将窗口与应用程序关联(或关联)?在许多 GUI 应用程序中,您必须将窗口插入或添加到应用程序中。
  • @ThomasMatthews 此代码示例应创建大小为 (250, 150) 的空窗口。
  • 哪个后端? X11、egl 还是 linuxfb?对我来说,上面的代码在 X11 中按预期工作。确保它没有被隐藏在窗口管理器的某个地方(如果您正在运行窗口管理器)。
  • @TobySpeight 我对“egl”一无所知,但我认为它不是 linuxfb。我将 xorg 用于我的桌面。您使用什么发行版(和版本)?你是如何安装 Qt5 的?
  • 我在 Debian 上使用 Qt 版本 5.6.1+dfsg-2 使用 g++ -std=c++14 -fPIC -g -Wall -Wextra -Wwrite-strings -Wno-parentheses $(pkg-config --cflags -libs Qt5Widgets) -o 38173496 构建了上述内容(刚刚使用 aptitude install qtbase5-dev 安装,所以没有什么不寻常的)。我正在使用 FVWM 作为窗口管理器,如果这有影响的话。

标签: c++ qt5


【解决方案1】:

如果加载/显示一个简单的小部件失败,我预计平台插件会丢失或位于错误的位置。 在调试环境中查找错误输出(例如“无法加载平台插件”)。 您使用的是哪个平台?检查您的应用程序目录结构!

【讨论】:

  • “平台”是什么意思?
【解决方案2】:

这是窗口管理器 (icewm) 的问题,它不支持 Qt 5 创建窗口的方式。它是icewm 1.3.8 中的fixed,所以如果你可以更新到那个,或者使用不同的窗口管理器,就可以解决你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 2018-04-06
    相关资源
    最近更新 更多