现在想在Ubuntu的qt里制作一个qt界面,并交叉编译出可执行程序,然后移植到GEC6818开发板上面,当该执行该可执行文件时ui界面会显示在LCD中间,所以怎么把qt的ui界面放到LCD的正中间呢

问题遇到的现象和发生背景

基于GEC6818开发板,怎么把qt的ui界面放到LCD的正中间呢?现在想在Ubuntu的qt里制作一个qt界面,并交叉编译出可执行程序,然后移植到GEC6818开发板上面,当该执行该可执行文件时ui界面会显示在LCD中间,所以怎么把qt的ui界面放到LCD的正中间呢?

操作环境、软件版本等信息

操作环境:Linux
软件版本:Ubuntu16.04 Qt5.5.1

我想要达到的结果

ui界面会显示在LCD中间

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: QT自制精美Ui模板系列展示(一)桃子风格模板 - 二次开发专用中的 ②搭配自定义提示弹窗 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    在这里插入图片描述

  • 以下回答来自chatgpt:

    为了将Qt的UI界面放置在GEC6818开发板的LCD屏幕正中间,需要按照以下步骤进行操作:

    1. 在Ubuntu的Qt环境中制作Qt界面,并确保界面的大小适合GEC6818开发板的LCD屏幕。

    2. 交叉编译Qt项目为可执行程序,可以使用Qt Creator中提供的交叉编译工具链。

    3. 将可执行程序移植到GEC6818开发板上,并确保开发板已正确连接到LCD屏幕。

    4. 编写一个Python脚本,启动可执行程序并将其放置在LCD屏幕的正中间。以下为示例代码:

    import os
    import subprocess
    
    # 获取屏幕的分辨率
    screen_width = 1920
    screen_height = 1080
    
    # 获取可执行程序的大小
    executable_width = 800
    executable_height = 600
    
    # 计算可执行程序在屏幕上的位置
    x_pos = (screen_width - executable_width) // 2
    y_pos = (screen_height - executable_height) // 2
    
    # 启动可执行程序,并设置位置
    subprocess.Popen(os.path.join(os.getcwd(), 'your_executable_program'), 
                     env={'XPOS': str(x_pos), 'YPOS': str(y_pos)})
    
    1. 在Qt界面的代码中,根据环境变量XPOSYPOS来设置窗口的位置。以下为示例代码:
    #include <QApplication>
    #include <QDesktopWidget>
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
    
        // 创建Qt界面,例如MainWindow类
        MainWindow window;
    
        // 获取屏幕的分辨率
        int screen_width = QApplication::desktop()->width();
        int screen_height = QApplication::desktop()->height();
    
        // 获取环境变量XPOS和YPOS的值
        int x_pos = qgetenv("XPOS").toInt();
        int y_pos = qgetenv("YPOS").toInt();
    
        // 设置窗口的位置
        window.move(x_pos, y_pos);
    
        // 显示窗口
        window.show();
    
        return app.exec();
    }
    

    通过以上步骤,就可以将Qt的UI界面放置在GEC6818开发板的LCD屏幕正中间了。请根据实际情况调整代码中的屏幕分辨率和可执行程序的大小。如果还有问题,请告知。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^