在使用tabWidget时在tab页内嵌子界面,子界面中添加lineEdit输入框控件,实现输入回车得出结果的设计,很容易想到用lineEdit的信号函数editingFinished(),但是使用时发现,这个函数会触发两次,当按返回或者回车键时,或者行编辑失去焦点时,发出此信号。如果:
QLineEdit设置了validator() orinputMask()函数,验证器or输入掩码,并按了返回或回车键,信号只有在 输入内容符合输入掩码 或验证器返回 QValidator::Acceptable时 发出。
在使用TabWidget时使用该函数,切换tab页面时应该是由于编辑失去焦点触发了此信号,导致每次切换页面时,输入搜索结果都要变一次,很麻烦。
修改:
将editingFinished()换成returnPressed()函数就完美避免切换界面触发问题。