You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QT 6.4无法完整显示4K图像问题求助

4K图像仅顶部1/6区域显示,1080p正常的问题排查与解决

使用QT 6.4版本,通过PCIE接收数据存入内存后进行显示时,3840x2160的4K图像仅顶部1/6区域有画面,下方无图像,但1080p数据可正常显示。已尝试修改UI与QImage的分辨率,问题仍未解决。

相关代码

newWindow::newWindow(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::newWindow)
{
    ui->setupUi(this);
    pcie_c2h_event0.isplay = false;
    connect(&pcie_c2h_event0, SIGNAL(sig_inform_disp()), this, SLOT(disp_slot()));
    connect(&pcie_c2h_event0, SIGNAL(finished()), this, SLOT(slotThreadFinish()));
    m_Qimage = new QImage(c2h_align_mem_tmp,3840,2160,QImage::Format_RGB32);
    if(!pcie_c2h_event0.isRunning()) pcie_c2h_event0.start();
}

newWindow::~newWindow()
{
    pcie_c2h_event0.isplay = false;
    while (pcie_c2h_event0.isRunning());
    pcie_close();
    delete ui;
}
void newWindow::disp_slot()
{
    QPixmap m_Qpixmap;
    if(pcie_c2h_event0.isplay == false)
        return;
    ui->label->setAutoFillBackground(true);
    read_pack((char*)c2h_align_mem_tmp,3840*2160*4,0);

    m_Qpixmap = QPixmap::fromImage(*m_Qimage,Qt::AutoColor);
 
    ui->label->setPixmap(m_Qpixmap);
}

问题原因分析

  • 语法错误导致分辨率参数失效:代码中QImage构造时使用了中文逗号分隔3840和2160,编译器解析会出错,实际传入的高度参数异常,QImage有效高度远小于2160,因此仅显示顶部区域。
  • 行字节对齐不匹配:如果PCIE传输的每行数据有硬件要求的对齐字节,而QImage默认按宽度*像素字节数计算行跨度,会导致行数据偏移、画面错位。1080p的行字节数可能刚好符合默认计算,因此显示正常。
  • 数据读取不完整:read_pack函数可能未读取到完整的4K图像数据,实际读取量不足导致下方无像素数据。

解决步骤

  1. 修复语法错误:将QImage构造中的中文逗号替换为英文逗号,确保分辨率参数正确传递:
    m_Qimage = new QImage(c2h_align_mem_tmp, 3840, 2160, QImage::Format_RGB32);
    
  2. 明确指定行字节跨度:如果PCIE传输的每行数据有对齐要求,手动传入正确的行字节数:
    // 假设RGB32格式下,每行实际字节数为3840*4(若有对齐则替换为实际值)
    int bytesPerLine = 3840 * sizeof(uint32_t);
    m_Qimage = new QImage(c2h_align_mem_tmp, 3840, 2160, bytesPerLine, QImage::Format_RGB32);
    
  3. 验证数据读取完整性:检查read_pack的实际读取字节数,确保读取了完整的4K图像数据:
    int actualRead = read_pack((char*)c2h_align_mem_tmp, 3840*2160*4, 0);
    qDebug() << "实际读取字节数:" << actualRead;
    
  4. 优化UI显示适配:设置QLabel自适应图像大小,避免因标签尺寸不足导致显示不全:
    ui->label->setScaledContents(true);
    

内容的提问来源于stack exchange,提问作者yimengxiaoyao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:45:27