QT创建将文本添加到文本编辑框的按钮

twi*_*igg 3 qt

QT的新手只是玩弄它,看看它是否适合我使用,如果愿意,可以继续学习该程序。

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

我似乎无法在Google或QT Wiki上找到任何东西来实现这一目标。有人可以指出我的方向,以便让我至少可以开始使用这个出色的工具。

Ano*_*ous 5

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

发生特定事件时会发出信号。Qt的小部件具有许多预定义的信号,但是我们始终可以对小部件进行子类化,以向其添加自己的信号。时隙是响应特定信号而调用的功能。Qt的小部件具有许多预定义的插槽,但是通常的做法是对小部件进行子类化并添加自己的插槽,以便您可以处理感兴趣的信号。

因此,在您的特定情况下,您需要将QPushButton clicked()信号与您需要的自定义插槽连接(将文本添加到textarea):

 QPushButton * btn = new QPushButton("Button", this);
 connect(btn, SIGNAL(clicked()), this, SLOT(onBtnClicked()));
Run Code Online (Sandbox Code Playgroud)

我们需要在标头中声明我们的广告位:

 private slots:
     void onBtnClicked();
Run Code Online (Sandbox Code Playgroud)

并定义它:

 void MySpecialWidget::onClick() 
 {
     // Do what is to be done
 }
Run Code Online (Sandbox Code Playgroud)

如果您正确完成了所有操作,那么它应该可以工作...否则,请查看控制台,看看是否有任何类似的消息:

Object::connect: No such slot MySpecialWidget::onClick() in ...
Run Code Online (Sandbox Code Playgroud)

要么

Object::connect: No such signal ....
Run Code Online (Sandbox Code Playgroud)

他们应该给您一些提示。

最后,我建议看一下广泛的Qt示例