文本标签不是“Ui::Dialog”Qt 的成员

Posted

技术标签:

【中文标题】文本标签不是“Ui::Dialog”Qt 的成员【英文标题】:text label is not a member of 'Ui::Dialog' Qt 【发布时间】:2013-06-05 18:58:23 【问题描述】:

我正在尝试在我的 openCV 代码中的标签中放置图像。 opencv 部分运行顺畅。然而,显示 Qimage 被证明是一个问题。我将图像放在标签中。

ui->lblOriginal->setPixmap(QPixmap::fromImage(qimgOriginal));

但是,它告诉我“错误:C2039: 'lblOriginal' : is not a member of 'Ui::Dialog'”

lblOriginal 是我对话框中的一个标签。有什么我想念的吗?这是dialog.cpp中的全部代码:

#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)

    ui->setupUi(this);

    capWebcam.open(0);

    tmrTimer = new QTimer(this);
    connect(tmrTimer, SIGNAL(timeout()), this, SLOT(processAndUpdateGUI()));
    tmrTimer->start(20);


Dialog::~Dialog()

    delete ui;


void Dialog::processAndUpdateGUI()
    capWebcam >> matOriginal;

    if(matOriginal.empty() == true)return;

    cv::cvtColor(matOriginal,matOriginal, CV_BGR2RGB);

    QImage qimgOriginal((uchar*)matOriginal.data, matOriginal.cols, matOriginal.rows,matOriginal.step,QImage::Format_RGB888);

    ui->lblOriginal->setPixmap(QPixmap::fromImage(qimgOriginal));


下面是我们的xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Dialog</class>
 <widget class="QDialog" name="Dialog">
  <property name="geometry">
  <rect>
    <x>0</x>
    <y>0</y>
    <width>1181</width>
    <height>590</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Dialog</string>
  </property>
  <widget class="QLabel" name="lblOrignal">
   <property name="geometry">
    <rect>
     <x>80</x>
     <y>36</y>
     <width>640</width>
     <height>480</height>
    </rect>
    </property>
   <property name="autoFillBackground">
    <bool>true</bool>
   </property>
   <property name="text">
    <string>TextLabel</string>
  </property>
  </widget>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>

【问题讨论】:

你能发布你的 xml ui 文件吗? 我将其添加到问题中 【参考方案1】:

实际上,您犯了一个基本错误,在您的 UI 文件中:

<widget class="QLabel" name="lblOrignal">

您尝试引用为:

ui->lblOriginal->setPixmap(QPixmap::fromImage(qimgOriginal));

那么你检查过差异吗?如果不是,lblOrignal 不等于 lblOriginal。

【讨论】:

错别字!!!!非常感谢您注意到这一点。我现在因为自己没有注意到它而感到很傻。 如果编译器说它不存在,那就意味着它不存在;)。如果它解决了您的问题@user2442449,请检查答案。

以上是关于文本标签不是“Ui::Dialog”Qt 的成员的主要内容,如果未能解决你的问题,请参考以下文章

修改element-ui dialog样式

jQuery UI Dialog 小部件是不是有 Vanilla JS 替代品[关闭]

jquery ui dialog怎么向子窗口传值

如何用jquery.ui.dialog加载页面

c# listview 大图标显示时,项中的标签文本居中显示怎么设置?

Java 之 HTML