QT的新手只是玩弄它,看看它是否适合我使用,如果愿意,可以继续学习该程序。
在按钮概念上有些挣扎。我创建了一个按钮和一个textedit区域。我想在按下按钮时在textedit窗口中添加一串文本。
我似乎无法在Google或QT Wiki上找到任何东西来实现这一目标。有人可以指出我的方向,以便让我至少可以开始使用这个出色的工具。
在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示例。