假设有一个QTableWidget填充了用户的数据,并且他/她希望能够使用多个用户定义的条件语句对其执行“高级搜索”:如何(程序员,而不是用户)去关于在代码中实现一个功能,使用户能够执行此搜索?
例如,假设用户想要以下搜索结果:
(column1 > 20 AND column2 < 50) OR column3 = "cloud"
首先想到的方法是以某种方式采用用户的搜索条件并生成某种“元代码”,但我不知道这是如何工作的。
答案 0 :(得分:2)
首先编写一个parser,然后定义一个函数/语法column
,它根据当前行提供表格列的内容。然后遍历每一行,评估解析的表达式并返回所有评估为正的行。
有关如何编写解析器的更多信息,请参阅Recursive descent parser。