目录
当我们点击某个button的时候,会发出一个信号。即按钮发出点击的信号。
触发的程序就是所谓的槽。
使用槽四种展示方法
1、右键
按键那里右键【转到槽】,然后必须在widget.cpp包含这个头文件!
然后就会在widget.h产生
信号和槽是两个独立的东西,如果要连接他们就需要写连接函数:
connect(谁发出信号,发出什么信号,谁处理信号,怎么处理);
在上图位置编写程序
void Widget::on_commitButton_clicked()
{
//获取Lineedit数据
QString program = ui->cmdlineEdit->text();//ui去访问cmdLineEdit里面的文本,保存到QString类型的program中
//ui作为一个指针,指向界面文件
//创建process对象
QProcess *myProcess = new QProcess(this);
myProcess->start(program);
}
然后点击运行就可以在编辑好的图形界面打开notepad等不需要管理员权限的程序,点击确定右键即可执行。
2、宏方法
如果想输入信息后直接回车,执行槽。
需要在构造函数中
/*构造函数*/
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
/*实现通过敲回车的方法直接跳转到槽*/
//通过宏的办法
//连接信号与槽 谁发出信号,发出什么信号,谁处理信号,怎么处理
//this是指Widget这个类
connect(ui->cmdlineEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButton_clicked()));
}
3、地址
注意,槽函数写法固定,一定要写在private slots:下面
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
/*实现通过敲回车的方法直接跳转到槽*/
//通过宏的办法
//连接信号与槽 谁发出信号,发出什么信号,谁处理信号,怎么处理
//this是指Widget这个类
connect(ui->cmdlineEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButton_clicked()));
//通过地址的办法
connect(ui->cancelButton,&QPushButton::clicked,this,&Widget::on_cancelButton_clicked);
}
4、展示一堆信息
首先加头文件
然后加入函数
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
/*实现通过敲回车的方法直接跳转到槽*/
//通过宏的办法
//连接信号与槽 谁发出信号,发出什么信号,谁处理信号,怎么处理
//this是指Widget这个类
connect(ui->cmdlineEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButton_clicked()));
//通过地址的办法
connect(ui->cancelButton,&QPushButton::clicked,this,&Widget::on_cancelButton_clicked);
connect(ui->browseButton,&QPushButton::clicked,[this]()
{
QMessageBox::information(this,"信息展示","点击浏览");
});
}
结果展示,点击浏览有