3

QT 的新手只是玩弄它,看看我是否会喜欢使用它,如果是的话,我想继续深入学习这个程序。

在按钮概念上有点挣扎。我创建了一个按钮和一个文本编辑区域。我想在按下按钮时将一串文本添加到文本编辑窗口中。

我似乎在 google 或 QT wiki 上找不到任何东西来实现这一点。有人可以指出我的方向,这样我至少可以开始使用这个很棒的工具。

4

1 回答 1

6

在 Qt 中,信号和槽被用于在对象之间进行通信。应该为您提供必要的信息以帮助您入门。

当特定事件发生时会发出信号。Qt 的小部件有许多预定义的信号,但我们总是可以子类化小部件以向它们添加我们自己的信号。插槽是响应特定信号而调用的函数。Qt 的小部件有许多预定义的插槽,但通常的做法是子类化小部件并添加自己的插槽,以便您可以处理您感兴趣的信号。

因此,在您的特定情况下,您需要将 QPushButtonclicked()信号与执行所需操作的自定义插槽连接(将文本添加到 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 示例集。

于 2012-04-17T21:40:21.493 回答