• 17596阅读
  • 16回复

问:怎样窗口一显示,QLineEdit就处于有光标的输入状态?谢! [复制链接]

上一主题 下一主题
离线kampan
 
只看楼主 倒序阅读 楼主  发表于: 2007-09-22
— 本帖被 XChinux 执行加亮操作(2008-07-18) —
窗体上放置一QLineEdit,我想运行时窗口一显示,光边就自动定位在QLineEdit内,因为我想响应一个键盘的回车事件,比如一回车就出现个消息框!
现在即便是设置QlineEdit的Tab Order为1 也只是在初始化显示后有个可以输入的焦点,需要用鼠标点击后才能获得光标,不知道如何实现我前边所说?

先谢谢各位,希望帮帮忙!

图一是现在的效果,图二是我想要的效果:
[ 此贴被kampan在2007-09-26 17:23重新编辑 ]
离线kampan
只看该作者 1楼 发表于: 2007-09-24
帮忙阿,各位!
离线lj_0212

只看该作者 2楼 发表于: 2007-09-24
都有输入焦点了,还没有光标?
离线kampan
只看该作者 3楼 发表于: 2007-09-24
没有阿
只是选中状态,而且可以输入,需要再点击一下才出现光标,或者输入一个字母才出现。
离线penguinfish

只看该作者 4楼 发表于: 2007-09-25
lineEdit->setFocus()应该是可以实现的,你仔细检查一下自己的代码!
离线mzl626

只看该作者 5楼 发表于: 2007-09-25
自个处理下窗口的keypressEvent事件就可以了!
离线kampan
只看该作者 6楼 发表于: 2007-09-26
如下是我的代码,清大牛给看看怎么回事,只是收到了焦点但没有光标阿(AddEdt())


#include "example.h"
#include <qpushbutton.h>
#include <QMessageBox>

ExampleBase::ExampleBase( QWidget *parent, Qt::WFlags f )
    : QWidget( parent, f )
{
    setupUi( this );
}

ExampleBase::~ExampleBase()
{
}

/*
*  Constructs a Example which is a child of 'parent', with the
*  name 'name' and widget flags set to 'f'
*/
Example::Example( QWidget *parent, Qt::WFlags f )
    : ExampleBase( parent, f )
{
    EdtNum1->setText("100");
    EdtNum1->setFocus();
    connect(quit, SIGNAL(clicked()), this, SLOT(goodBye()));
    connect(BtnAdd, SIGNAL(clicked()), this, SLOT(AddEdt()));
    connect(EdtNum1, SIGNAL(returnPressed()), this, SLOT(ShowMsg()));
}

/* 
*  Destroys the object and frees any allocated resources
*/
Example::~Example()
{
    // no need to delete child widgets, Qt does it all for us
}

/*
*  A simple slot... not very interesting.
*/
void Example::goodBye()
{
    close();
}
void Example::AddEdt()
{
    QString x, y;
    int z;
    x = EdtNum1->text();
    y = EdtNum2->text();
    z = x.toInt() + y.toInt();
    EdtResult->setText(QString::number(z));
}

void Example::ShowMsg()
{
    QMessageBox* msg = new QMessageBox(QMessageBox::Information, "Test", "That's Right!");
    msg->exec();
}
离线kampan
只看该作者 7楼 发表于: 2007-09-26
如上图,
图一是现在的效果,图二是我想要的效果:
离线penguinfish

只看该作者 8楼 发表于: 2007-09-27
自己实现一下show()函数,试一下:
void Example::show()
{
    QDialog::show();
    EdtNum1->setText("100");
    EdtNum1->setFocus();
}
离线kampan
只看该作者 9楼 发表于: 2007-09-27
谢谢各位,已经解决。
EdtNum1->setEditFocus(true);
离线om181225

只看该作者 10楼 发表于: 2014-10-21
现在遇到同样问题,但4.8版本QLineEdit没有setEditFocus()函数,请问有没有其他解决方案,谢谢
离线dbzhang800

只看该作者 11楼 发表于: 2014-10-21
回 om181225 的帖子
om181225:
现在遇到同样问题,但4.8版本QLineEdit没有setEditFocus()函数,请问有没有其他解决方案,谢谢

这是谁告诉你的?
离线om181225

只看该作者 12楼 发表于: 2014-10-22
回 dbzhang800 的帖子
dbzhang800:这是谁告诉你的?
 (2014-10-21 14:22) 

我昨天试了 QWIdget里面有,但定义QLineEdit里面没有
离线kimtaikee

只看该作者 13楼 发表于: 2014-10-22
回 om181225 的帖子
om181225:我昨天试了 QWIdget里面有,但定义QLineEdit里面没有 (2014-10-22 07:57) 

QLineEdit继承自QWidget,QWidget能用的接口,QLineEdit自然能够调用,这OO都怎么学的?

离线om181225

只看该作者 14楼 发表于: 2014-10-22
回 kimtaikee 的帖子
kimtaikee:QLineEdit继承自QWidget,QWidget能用的接口,QLineEdit自然能够调用,这OO都怎么学的? (2014-10-22 09:19) 

可是我试了,没法调用,ui->lineEdit->  后面没法调用此函数
离线kimtaikee

只看该作者 15楼 发表于: 2014-10-22
回 om181225 的帖子
om181225:可是我试了,没法调用,ui->lineEdit->  后面没法调用此函数 (2014-10-22 09:49) 

看文档,This feature is only available in Qt for Embedded Linux.

离线om181225

只看该作者 16楼 发表于: 2014-10-22
回 kimtaikee 的帖子
kimtaikee:看文档,This feature is only available in Qt for Embedded Linux. (2014-10-22 09:55) 

我是一直到ARM板上的 但是qmake时出错,提醒我QLineEdit里面没有setEditFocus()函数
快速回复
限100 字节
 
上一个 下一个