宿州公司网站建设,网站如何优化一个关键词,网页设计与制作课程思政项目构建,上海网站建设规范c qt–信号与槽(一) #xff08;第三部分#xff09;
一.用qt自带的方法添加信号槽
1.第一种
1.如何添加 2.在何处进行绑定 2.第二种
1.如何添加 2.在何处进行绑定 而且会在mainwindow.h中添加槽函数的声明#xff0c;在mainwindow.cpp中添加槽函数的定义
在mainwindow…c qt–信号与槽(一) 第三部分
一.用qt自带的方法添加信号槽
1.第一种
1.如何添加 2.在何处进行绑定 2.第二种
1.如何添加 2.在何处进行绑定 而且会在mainwindow.h中添加槽函数的声明在mainwindow.cpp中添加槽函数的定义
在mainwindow.h中槽函数的声明 在mainwindow.cpp中槽函数的定义 注意这里的输出是后添加的测试是否能正常运行的
槽函数是根据名字来进行匹配的如果将上面的槽函数名字进行更改就无法调用槽函数了
二.自定义槽函数 这里我们放入一个新组件用来控制是否能使用“退出主窗口程序退出”这个组件
1.声明
在mainwindow.h的类中写下面代码
//slots:qt 中修饰槽函数的关键字
private slots:void slots_isButtonDisable(int);//槽函数返回类型一般都是void参数列表要和信号保持一致2.定义
在mainwindow.cpp源文件中写下面代码
void MainWindow::slots_isButtonDisable(int a)
{qDebug()a;if(a0){//不勾选ui-pushButton-setDisabled(false);//设置按钮是否可用}else{//勾选ui-pushButton-setDisabled(true);}}3.绑定连接在使用前进行绑定连接即可
在mainwindow.cpp中的构造函数中写下面代码
//绑定连接
//SIGNAL指定信号函数的宏宏参数信号名和参数列表如果有参数名字一定要去掉
//SLOT:指定槽函数的宏宏函数槽名和参数列表如果有形参名字一定要去掉
connect(ui-checkBox/*信号的发出者*/,SIGNAL(stateChanged(int)),this/*接收者*/,SLOT(slots_isButtonDisable(int)));4.设置三态
在mainwindow.cpp中的构造函数中写下面代码
//设置 checkbox多态
ui-checkBox-setTristate(true);//设置之后就有了三种状态选不选半选。设置之前只有两种状态选和不选三.练习自定义槽函数
1.目标
将上一篇博客的弹出框的上的按钮进行改变变成中文然后根据按下的按键进行相应的操作
2.声明
在mainwindow.h的类中写下面代码
public:QMessageBox m_box;//声明一个弹出框QPushButton *POK;//接按下确定的按键信息QPushButton *PCANCEL;//接按下否定的按键信息
3.对弹出框进行操作
在mainwindow.cpp中的构造函数中写下面代码
m_box.setWindowTitle(提示);//设置标题
m_box.setText(这是我的MessageBox);//设置文本
POKm_box.addButton(确定,QMessageBox::YesRole);//添加按钮
PCANCELm_box.addButton(取消,QMessageBox::NoRole);//添加按钮4.显示弹出框
在mainwindow.cpp源文件中写下面代码
void MainWindow::on_pb2_clicked()
{qDebug()__FUNCTION__;m_box.show();//默认不显示所以手动调一下show函数
}如果按下了下面这个按键就显示弹出框 5.手写槽函数
1.声明
在mainwindow.h的类中写下面代码
void slots_buttonClicked(QAbstractButton* button);2.定义
在mainwindow.cpp源文件中写下面代码
void MainWindow::slots_buttonClicked(QAbstractButton* button){if(buttonPOK){qDebug()确定;}else if(buttonPCANCEL){qDebug()取消;}
}6.进行连接在使用前进行绑定连接即可
在mainwindow.cpp中的构造函数中写下面代码
//绑定连接
connect(m_box,SIGNAL(buttonClicked(QAbstractButton*)),this,SLOT(slots_buttonClicked(QAbstractButton*)));四.自定义信号
1.声明
在mainwindow.h的类中写下面代码
signals://声明信号的关键字
void signals_sendDate(int,int,QString);//仅声明即可2.发射信号
点击下面组件进行发射信号 在槽函数中发射信号
void MainWindow::on_pushButton_2_clicked()
{int a1;//发射我的自定义信号//emit是一个宏告诉别人这是一个发射信号emit signals_sendDate(a,1,你去做一个加法);
}3.接受信号
1.新创建一个窗口对话框窗口 2.创建窗口定义一个对象
在main.cpp写下面代码
Dialog dia;
dia.show();3.槽函数
1.声明槽函数
在dialog.h的类中写下面代码
public slots:void slots_recvData(int,int,QString);2.定义槽函数
在dialog.cpp中写下面代码
void Dialog::slots_recvData(int a,int b,QString s){int sumab;QString strs ,结果为: QString::number(sum);//拼接字符串ui-label-setText(str);//设置文本
}4.进行绑定连接在使用前进行绑定连接即可
在main.cpp中写下面代码
QObject::connect(w,SIGNAL(signals_sendDate(int,int,QString)),dia,SLOT(slots_recvData(int,int,QString)));