我有一个包含以下行的文本文件:
a1 b00 2222
a1 b01 233
a1 b92 34444
a2 b00 2222
a2 b00 3333
a2 b01 3333
我想阅读此文件并使用QRegExp
并将结果填充到三个QComboBox combo1
中,对于第一个匹配的情况,combo2
填充到第二个匹配的情况,将combo3
填充到第三个匹配的情况。
结果如下:
combo1
a1
a2
从combo1
中选择a2然后combo2
将是
combo2
b00
b01
当从combo2
选择b00时,combo3
将是
combo3
2222
3333
我没有与QRegExp
合作,有人可以告诉我如何实现这个目标吗?
答案 0 :(得分:2)
我建议您不使用 button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//note: import android.support.v4.app.FragmentManager;!!!
FragmentManager fm = getSupportFragmentManager();
AmountDialog alert = new AmountDialog ();
alert.show(fm, "AmountDialog");
}
});
来过滤此内容。因为您正在使用以空格分隔的文件,所以非常只需将其读入QRegExp
并使用它来填充vector
es。例如:
QComboBox
请注意,您还可以使用QTextStream并直接将其读取到QString
甚至是QStringList
。我选择不将您的业务逻辑与GUI逻辑分开。
答案 1 :(得分:-1)
我需要过滤(匹配)每一行的QregExp是
QRegExp rx("\\s*(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s*");
if (rx.exactMatch(line) //to cehck if rx matches the line from the text file
{
QString col1 = rx.cap(1);//the first column that goes to combo1
QString col2 = rxHeader.cap(2);//the second column that goes to combo2
QString col2 = rxHeader.cap(3);//the third column that goes to combo3
}
现在它适用于我。