• 6448阅读
  • 2回复

[提问]QLineEdit::selectAll()不起作用? [复制链接]

上一主题 下一主题
离线hgl2073
 
只看楼主 倒序阅读 楼主  发表于: 2011-02-15
想实现这样一个功能:
一个QLineEdit与QPushButton控件,按下后者后,会调用一个函数,判断QLineEdit的内容是否合法,如果合法,继续往下走,如果不合法,弹出一个警告对话框,进行提示。并且在对话框被关闭后:全选QLineEdit的内容,以方便用户修改QLineEdit的内容。

伪码如下:
//foo将会在QPushButton被按下后被调用
void MainWindows::foo()
{
    if ( !isOK( line->text() ) ) {
        QMessageBox::critical(0, qApp->tr("Error"),
        qApp->tr("balabalabala!\n"
                       "Click Cancel to exit."), QMessageBox::Cancel);
        line->selectAll();
        return;
    }
     //正常情况代码。。。。
    ....
}
但是事实上不work,运行的时候line的内容没有被选择。
请问怎么回事?怎么样才能实现我的需求?
补充下:如果把弹出的QMessageBox注释掉,则不会出现该问题
[ 此帖被hgl2073在2011-02-15 21:15重新编辑 ]
离线hgl2073
只看该作者 1楼 发表于: 2011-02-16
每人回答吗。。。
离线hgl2073
只看该作者 2楼 发表于: 2011-02-17
回 楼主(hgl2073) 的帖子
嗯,另一个论坛有人回答了。这边引用下,造福大家:
line->setFocus(Qt::OtherFocusReason);
快速回复
限100 字节
 
上一个 下一个