2016-10-26 11 views
0

Я искал (невероятное количество времени) через Qt Documentation и другую документацию онлайн, но я не могу получить ответ.Как использовать QRegularExpression в Qt

Я использую QLineEdit, который примет «имя класса C++» (это означает, что он должен принимать только [ab] (< -uppercase), [0-9] и подчеркивание (_). как (вслепую) Я пытаюсь установить его, он не работает.

1 m_classDefLayout->addRow("Class Name",m_className); 
2 m_className->setValidator(m_nameValidator); 
3 m_nameValidator->setRegularExpression(*m_nameRegExp); 
4 //m_namePattern=(); 
5 m_nameRegExp->setPattern(m_namePattern); 

Что я вставить в скобках линии 4? Я не прошу кода для копирования и вставки. Некоторые примеры (даже одна объясненная) может помочь мне, поэтому я, наконец, закончу свой проект.

+0

Вы должны показать типы данных каждого члена .. – hyun

ответ

2

Поскольку я не знаю тип данных в вашем коде, я просто пишу простой пример кода.

QRegularExpression rx("^[A-Za-z_][A-za-z0-9]*"); 
QValidator *validator = new QRegularExpressionValidator(rx, this); 

ui.lineEdit->setValidator(validator); 

Если вы читаете ниже ссылку, вы будете точно поняты.

link for ^(caret)

link for *(asterisk)

+0

'm_className является QLineEdit' 'm_nameValidator мой QRegularExpressionValidator' 'm_nameRegExp мой QRegularExpression' «m_namePattern является QString ' ' И спасибо за ваш ответ. ' Я предполагаю, что скобки, следующие за «^», для начала ввода и последние для конца. Я ошибаюсь? –

+0

@NhatzHK, я отредактировал свой ответ. «^ для начала» является правильным, но * не для последнего. $ для последнего. – hyun

+0

спасибо большое;) –