使用QT创建推按钮并将文本添加到文本编辑框

3

我刚接触QT,只是想了解一下它是否适合我使用,如果是的话,希望能够深入学习这个程序。

目前对按钮概念还有些困惑。我已经创建了一个按钮和一个文本编辑区域。我希望在按下按钮时向文本编辑窗口添加一串文本。

我在谷歌和QT维基上找不到任何实现此功能的方法。请问有人能够指点我一下,让我至少开始使用并体验这个伟大的工具吗?

1个回答

6
在Qt中,信号和槽用于对象之间的通信。 这个 可以为您提供必要的信息来帮助您入门。
当特定事件发生时,会发射一个信号。Qt的小部件有许多预定义信号,但我们始终可以对小部件进行子类化,以向其中添加自己的信号。槽是响应特定信号调用的函数。Qt的小部件有许多预定义槽,但通常的做法是对小部件进行子类化并添加自己的槽,以便您可以处理所感兴趣的信号。
因此,在您的情况下,您需要连接QPushButton的clicked()信号与自定义槽,执行所需操作(将文本添加到文本区域)。
 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示例集。


1
@twigg - 只是想补充一下匿名回答中的内容。一开始看起来很奇怪,但所有GUI编程一开始都很奇怪。Qt信号/槽比大多数其他方法要好得多 - 只需坚持使用它。 - Martin Beckett
非常感谢您提供如此优质的信息,这真的让我有了很大的启发。再次感谢! - twigg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接