文字提示框

  现在好多界面都用到了一种提示框,上面显示的是“请输入。。。”之类的字样,当鼠标点进去的时候变成空的,等待输入,在不输入任何字符的情况下,移开鼠标,提示框中又显示提示字符,就像QQ上的搜索框那栏。

  其实这种这种效果就是必须对输入框中的鼠标移进移出做出处理。因此重写lineedit的focusInEvent和focusOutEvent就行了。

 

CLineEditFocus::CLineEditFocus()
{
 m_boolEdit = false;
 m_nfocusStatus = FOCUS_OUT;

 connect(this, SIGNAL(textEdited(QString)), this, SLOT(slotTextEdit(QString)));
}


CLineEditFocus::~CLineEditFocus()
{

}


void CLineEditFocus::setDefault(QString str)
{
 //QLineEdit::setStyleSheet("color: red;");
 setText(str);
 m_strDefault = str;
 m_boolEdit = false;
}


 
void CLineEditFocus::focusInEvent ( QFocusEvent * event )
{
 QLineEdit::focusInEvent( event );//必须加上,不然没有光标
 m_nfocusStatus = FOCUS_IN;
 if (false == m_boolEdit)
  setText("");
 //QLineEdit::setStyleSheet("color: black;");
}


void CLineEditFocus::focusOutEvent ( QFocusEvent * event )
{
 QLineEdit::focusOutEvent( event );
 m_nfocusStatus = FOCUS_OUT;
 if (text() == "")
 {
  //QLineEdit::setStyleSheet("color: red;");
  setText(m_strDefault);
  m_boolEdit = false;
 }
 else
 {
  m_boolEdit = true;
 }
}

 

转载于:https://www.cnblogs.com/chenxuelian/archive/2010/04/12/1710293.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值