connect的简单用法:首先connect(a,b,c,d)的简单格式。其中a为你要链接的控件,比如PushButton等,b为你a控件的状态,比如对于PushBotton控件而言,他的状态可能有cliecked(点击)状态等,c为你的父对象,比如较为常用的又this(窗口类父对象),d为你要执行的函数,比如常见为 void hanshu();使用connect可以实现,监控a控件的状态,当在c窗口下,检测的符合b类型的状态改变时,既执行d函数。
常见的形式主要为
connect(btn_1, &QPushButton::clicked, this, [=]()
{
if (thread->isRunning() == true)return;
thread->start();
emit startThread();
});
connect(button_1, SIGNAL(clicked()), this, SLOT(change_text1()));
在这个地方有一些小白就会犯一些很严重的错误但又无法解决
SLOT(change_text1())
这句话的问题,很多小白会发现为什么我写的会报错,为什么我的connect连接不起效果,主要是在头文件中把声明放错地方了
public slots:
void change_text1();//定义选项的跳转。
void change_text2();
这些链接需要在头文件放在属于slots的地方,可以试公有的(public)也可以是私有的(private)。其实这个东西有人犯了有时候确实是没有办法解决的,毕竟大家都不会觉得居然会有人在这个地方犯错误,我接触过的人,更多是因为c语言没有公有私有变量的概念才会导致在学习c++的时候犯这种错误。