【发布时间】:2014-07-29 14:11:04
【问题描述】:
我是 QT GUI 编程的新手,我正在使用 QT Creator。我看到的问题是当用户按下回车键时我的按钮和行编辑。我的程序打开一个组框并允许用户输入密码并按确定或取消。
如果用户在行编辑获得焦点时按下回车键,程序似乎会为 QAbstractButton animateClick(); 发出第二个信号,因此当下一个组框打开并提示用户按确定或取消时,程序继续就好像用户按下了确定按钮一样。
我将我的 Push 按钮设置为允许用户按 Tab 键并按 Enter 键。为了获得这个功能,我设置了 okbutton->setAutodefault(true); 和 cancelButton->setAutodefault(true);
我还有一个 lineEdit 供用户输入密码并按 Enter。我通过将按下的返回信号连接到如下所示的 ok 按钮来进行设置。
connect(lineEdit, SIGNAL(returnPressed()), okButton, SIGNAL(clicked()));
我也尝试直接将return press信号连接到插槽,但问题仍然存在。
connect(lineEdit, SIGNAL(returnPressed()), this, SLOT(chkPassword()));
如果用户用鼠标单击 okButton 或我设置 okButton->setAutoDefault(false); 程序会正常运行。我想知道是否可以禁用在行编辑具有焦点时发生的 animateClick 信号。
对此的任何帮助将不胜感激。
【问题讨论】:
标签: c++ qt qlineedit qpushbutton qabstractbutton