首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建监听QLabel

创建监听QLabel
EN

Stack Overflow用户
提问于 2012-06-26 16:15:43
回答 1查看 436关注 0票数 0

我习惯了Java和QT/C++的新手,在创建一个每当有人选择QListWidgetItem时更改文本的QLabel时,我遇到了一些问题。

在我的ui_GraphicsView.h中,我使用了setupUI()来创建对象。我尝试使布局成为它的父布局。

代码语言:javascript
复制
label = new QLabel(verticalLayout);
   label->setObjectName(QString::fromUtf8("label"));
   verticalLayout->addWidget(label);

在我的.cpp文件中,我在构造函数中使用connect:

代码语言:javascript
复制
connect(list_widget, SIGNAL(itemSelectionChanged(), this, SLOT(updataDetails())));

updateDetails()在我的selectionChanged()方法中执行,它传递一个字符串。

代码语言:javascript
复制
void GraphicsView::updateDetails(QString details){
    label->setText(details);
}

这将导致以下错误:

代码语言:javascript
复制
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)

在我进行上述调整之前,一切都进行得很好。你知道是什么导致了这个错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-26 16:28:06

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

代码语言:javascript
复制
label = new QLabel(parent_widget);
label->setLayout(layout)

编辑:奇怪,没人注意到我的错误。在标签上设置布局很奇怪。更好的是

代码语言:javascript
复制
label=new QLabel();
layout->addWidget(label).

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11203265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档