QT::槽函数关联的三种方式

1.第一种方法


///首先在头文件中定义

private slots:
   void show_l();
 
///////在.cpp中进行connect

QtGuiApplication3::QtGuiApplication3(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);

	connect(ui.pushButton, &QPushButton::clicked, this, &QtGuiApplication3::show_l);
//第一变量是按钮名,第二个变量是发射的信号,第三个变量接受信号的对象,第四个变量是执行的槽,也就是函数。

}


2.第二种方法(不需要connect函数连接)

///首先在头文件中定义------声明必须是::字符on+发射信号的部件对象名+信号名(下划线)
private slots:
   void on_pushButton_clicked();


/////////////////////////////////////////////////
//不用修改
QtGuiApplication3::QtGuiApplication3(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);

}

////////////定义函数即可
void QtGuiApplication3::on_pushButton_clicked()
{
	QDialog *dialog = new QDialog(this);

	dialog->show();
}



3.第三种方法(是第一种的变形)

///首先在头文件中定义一个函数

private:
   void Imc_Total();

//////调用函数
QtGuiApplication3::QtGuiApplication3(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);

	Imc_Total();
}

//编写函数并connect
void QtGuiApplication3::Imc_Total()
{
	//////          打开一个文件
	QObject::connect(ui.pushButton, &QPushButton::pressed, [this]() {
		//在这里编写需要执行的命令
	});

	

//可以写多个connect
}

 

你可能感兴趣的:(c++学习笔记)