QT的新手只是玩它来看看我喜欢使用它的东西,如果是这样的话,想继续深入学习这个程序。
按钮概念苦苦挣扎。我创建了一个按钮和一个textedit区域。我想在按下按钮时在textedit窗口中添加一串文本。
我似乎无法在谷歌或QT维基上找到任何东西来实现这一目标。有人能指出我的方向,所以我至少可以开始使用这个伟大的工具。
答案 0 :(得分:4)
在Qt中,信号和插槽用于在对象之间进行通信。 This应该为您提供必要的信息,以帮助您入门。
发生特定事件时发出信号。 Qt的小部件有许多预定义信号,但我们总是可以将小部件子类化为向它们添加我们自己的信号。时隙是响应于特定信号而被调用的函数。 Qt的小部件有许多预定义的插槽,但通常的做法是子类化小部件并添加自己的插槽,以便您可以处理您感兴趣的信号。
因此,在您的特定情况下,您需要将QPushButton clicked()
信号与您所需的自定义插槽连接(将文本添加到textarea):
QPushButton * btn = new QPushButton("Button", this);
connect(btn, SIGNAL(clicked()), this, SLOT(onBtnClicked()));
我们需要在标题中声明我们的插槽:
private slots:
void onBtnClicked();
并定义它:
void MySpecialWidget::onClick()
{
// Do what is to be done
}
如果你已经正确地完成了所有事情,它应该可以工作......否则,请查看控制台,看看是否有任何消息:
Object::connect: No such slot MySpecialWidget::onClick() in ...
或
Object::connect: No such signal ....
他们应该给你一些关于发生了什么的提示。
最后,我建议您查看广泛的Qt examples。