一、QT常见按钮
二、举例:结合按钮构建密码框
1.建立项目 button
2.在widget.h中进行编写
#ifndef WIDGET_H
#define WIDGET_H
#include <QLineEdit> //行编辑框头文件
#include <QPushButton> //按钮头文件
#include <QCheckBox> //以什么形式显示字符串的所需头文件
#include <QWidget>
class Widget : public QWidget
{
Q_OBJECT
//编写显示铭文的槽
public slots:
void setpasswd(bool flag) //写成带传参的信号
{
//进行判断 实现信号不仅激发 并在激发时候传达一个想法 进行判断选择实现相应的需求
if(!flag)
le->setEchoMode(QLineEdit::Password); //实现密码模式显示
else
le->setEchoMode(QLineEdit::Normal); //实现明文显示
}
public:
Widget(QWidget *parent = 0);
~Widget();
private:
QLineEdit *le;
QCheckBox *ck;
QPushButton *pb;
};
#endif // WIDGET_H
3.在widget.cpp中进行编写
#include "widget.h"
#include <QVBoxLayout> //垂直布局头文件
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
le = new QLineEdit; //输入内容密码显示
le->setEchoMode(QLineEdit::Password); //输入内容密码显示
ck = new QCheckBox("show passwd"); //实现勾选显示明文 自己编写槽
pb = new QPushButton("clear");
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(le);
vbox->addWidget(ck);
vbox->addWidget(pb);
this->setLayout(vbox);
//连接信号与槽 实现清除
connect(pb,SIGNAL(clicked(bool)),le,SLOT(clear())); //信号 clicked 按下信号 实现行编辑框清空
connect(ck,SIGNAL(clicked(bool)),this,SLOT(setpasswd(bool))); //将勾选信号与自己编写的明文显示槽连接起来
}
Widget::~Widget()
{
}
4.ctrl+r 运行 进行测试
未勾选按钮时,密码暗文显示,点击clear按钮清除密码。
勾选按钮后,密码明文显示,点击clear按钮清除密码。
三、总结
按钮通过信号与槽进行结合,达到按下或勾选按钮发生相应的变化,可以自己构造槽实现自己想要的结果。