void currentIndexChanged ( const QString &text ) 这个信号,但选择改变的时候就会
被emit;
要设定LineEdit的输入数值范围我们可以用setValidator()来设置LineEdit的正则洞基表达式。
然后再自定义一个槽根据index来为lineEdit设置不同的Validator。
connect 信号currentIndexChanged 和这个槽 就可以完成这个功能。
偶写的程序
#include "dialog.h"
#include <QtGui>
Dialog::Dialog(QWidget *parent) :
QDialog(parent)
{
comboBox = new QComboBox
lineEdit = new QLineEdit
comboBox->addItem("1")
comboBox->addItem("2")
comboBox->addItem("3")
QHBoxLayout *layout = new QHBoxLayout
layout->addWidget(comboBox)
layout->addWidget(lineEdit)
this->setLayout(layout)
connect(comboBox,SIGNAL(currentIndexChanged(int)),
this,SLOT(selectChanged(int)))
this->悄举selectChanged(0)
}
void Dialog::selectChanged(int index)
{
QRegExp rx
switch(index)
{
case 0:
rx.setPattern("^\\d$")
break
case 1:
rx.setPattern("^\\d{0,2}$")
break
case 2:
rx.setPattern("^\\d{0,3}$")
break
default:
break
}
QValidator *validator = new QRegExpValidator(rx, this)
lineEdit->setValidator(validator)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)