C++ 创建侦听QLabel

C++ 创建侦听QLabel,c++,qt,C++,Qt,我熟悉Java,对QT/C++还不熟悉,在创建QLabel时遇到一些问题,每当有人选择QListWidgetItem时,QLabel会更改文本 在我的ui_GraphicsView.h中,我有setupUI(),它可以生成对象。 我尝试将布局设置为其父级 label = new QLabel(verticalLayout); label->setObjectName(QString::fromUtf8("label")); verticalLayout->addWidge

我熟悉Java,对QT/C++还不熟悉,在创建QLabel时遇到一些问题,每当有人选择QListWidgetItem时,QLabel会更改文本

在我的ui_GraphicsView.h中,我有setupUI(),它可以生成对象。 我尝试将布局设置为其父级

label = new QLabel(verticalLayout);
   label->setObjectName(QString::fromUtf8("label"));
   verticalLayout->addWidget(label);
在.cpp文件中,我使用构造函数中的connect:

connect(list_widget, SIGNAL(itemSelectionChanged(), this, SLOT(updataDetails())));
updateDetails()在我的selectionChanged()方法中执行,它在其中传递字符串

void GraphicsView::updateDetails(QString details){
    label->setText(details);
}
这将导致以下错误:

error: no matching function for call to ‘QLabel::QLabel(QVBoxLayout*&)
note: candidates are: QLabel::QLabel(const QLabel&)
note: QLabel::QLabel(const QString&, QWidget*, Qt::WindowFlags)
note: QLabel::QLabel(QWidget*, Qt::WindowFlags)

在我做出上述调整之前,一切都很顺利。知道是什么导致了这个错误吗?

阅读错误。QLabel::QLabel是构造函数。构造函数希望指针指向小部件,而不是布局。 事实上,您希望执行以下操作:

label = new QLabel(parent_widget);
label->setLayout(layout)
编辑:奇怪,没有人注意到我的错误。在标签上设置布局很奇怪。更好的是

label=new QLabel();
layout->addWidget(label).

标签将获得布局所有者作为父项。

好的,我真的看不出哪种小部件会是我的父项小部件。在大多数情况下,父窗口小部件应该是子窗口小部件所在的窗口小部件