【发布时间】:2013-05-06 15:59:06
【问题描述】:
在下面的代码中,我试图在按下“单击”按钮时将“原始文本”替换为“新文本”。我没有收到任何错误,但标签的文本没有改变。
QPushButton *button=new QPushButton("click");
QLabel *label=new QLabel("original text");
QVBoxLayout *layout=new QVBoxLayout();
QString word("new text");
QWidget *window=new QWidget();
layout->addWidget(button);
layout->addWidget(label);
QPushButton :: connect(button,SIGNAL(clicked()),layout,SLOT(setText(word)));
window->setLayout(layout);
window->show();
【问题讨论】:
-
方法不对,建议你重读文档。简而言之,你不能在连接过程中指定像
word这样的实例。 -
我试过这个 QPushButton :: connect(button,SIGNAL(clicked()),layout,SLOT(setText("new text")));
-
当然,这是错误的,请阅读文档。您只是误解了信号和插槽的机制。
-
我想我做到了。非常感谢!
-
如果你甚至不检查连接的返回值是否有错误,你怎么能说你没有收到任何错误? -1 表示无法证明的声明。
标签: c++ qt qt4 signals-slots