接着上次的内容继续,上次主要介绍了QLineEdit的常用函数以及常用的信号,那么本节的内容就是通过一个小例子来将上节课的内容进行实践的应用。
通过改变选择组合框中设定的属性,来改变QLineEdit的属性。
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QGroupBox>
#include <QLineEdit>
#include <QComboBox>
#include <QLabel>
#include <QGridLayout>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void echoChanged(int);
void validatorChanged(int);
void alignmentChanged(int);
void inputMaskChanged(int);
void accessChanged(int);
private:
Ui::Widget *ui;
QGroupBox *echoGroupBox;
QGroupBox *inputMaskGroupBox;
QGroupBox *validatorGroupBox;
QGroupBox *accessGroupBox;
QGroupBox *alignmentGroupBox;
QLabel *echoLabel;
QComboBox *echoComboBox;
QLineEdit *echoLineEdit;
QLabel *inputMaskLabel;
QComboBox *inputMaskComboBox;
QLineEdit *inputMaskLineEdit;
QLabel *validatorLabel;
QComboBox *validatorComboBox;
QLineEdit *validatorLineEdit;
QLabel *accessLabel;
QComboBox *accessComboBox;
QLineEdit *accessLineEdit;
QLabel *alignmentLabel;
QComboBox *alignmentComboBox;
QLineEdit *alignmentLineEdit;
};
#endif // WIDGET_H
我们声明了五个私有的槽函数, void echoChanged(int)用来处理当echoGroupBox中的索引发生改变的时候,改变对应的LineEdit的属性,其具体实现如下:
void Widget::echoChanged(int index)
{
switch (index) {
case 0:
echoLineEdit->setEchoMode(QLineEdit::Normal);
break;
case 1:
echoLineEdit->setEchoMode(QLineEdit::NoEcho);
break;
case 2:
echoLineEdit->setEchoMode(QLineEdit::Password);