文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>更新一下QIRCLineEdit

更新一下QIRCLineEdit

时间:2010-08-19  来源:liuyanghejerry

上次写的那个虽然勉强能用,但是客户说啦,这个框子呀,和真正的IRC聊天框还有所不同,于是我就重写了一下。

 

这次写的只用一个QList,应该是进一步减少了内存的占用,呵呵。

 

/* A new LineEdit that like IRC chat*/
class QIRCLineEdit : public QLineEdit
{
    Q_OBJECT
public:
    QIRCLineEdit();
private:
    void keyPressEvent(QKeyEvent *);
    //QList<QString> m_Inputlist1;//Stores the inputed strings,up list.
    //QList<QString> m_Inputlist2;//Stores the inputed strings,down list.
    QList<QString> m_Inputlist;
    quint16 listindex;
    //QString m_Currentline;//Stores a copy of the current text in the LineEdit.
public slots:
    void myTextEdited();
    void myclear();

};

 

QIRCLineEdit::QIRCLineEdit()
{
    connect(this,SIGNAL(textEdited(QString)),this,SLOT(myTextEdited()));
    listindex=0;
}
void QIRCLineEdit::keyPressEvent(QKeyEvent *e)
{
    if(e->key() == Qt::Key_Up) {
        if(text()==""){
            if(m_Inputlist.empty()){
            }else{
                listindex--;
                setText(m_Inputlist[listindex]);
            }
        }else if(text()!=""){
            //m_Inputlist2.append(text());
            if(listindex<=m_Inputlist.count()){
                //m_Inputlist.append(text());
                if(listindex==0){
                    setText(m_Inputlist[0]);
                }else{
                    if(listindex==m_Inputlist.count()) m_Inputlist.append(text());
                    listindex--;
                    setText(m_Inputlist[listindex]);
                }
            }else if(listindex>m_Inputlist.count()){
                if(!m_Inputlist.empty()){
                    m_Inputlist.append(text());
                    setText(m_Inputlist[listindex--]);
                }
            }
        }
    }else if(e->key() == Qt::Key_Down) {
        if(text()==""){
            if(m_Inputlist.empty()){
            }else{
                listindex++;
                setText(m_Inputlist[listindex]);
            }
        }else if(text()!=""){
            if(listindex+1<m_Inputlist.count()){
                listindex++;
                setText(m_Inputlist[listindex]);
            }else if(listindex>=m_Inputlist.count()){
            }
        }
    }else{
        QLineEdit::keyPressEvent(e);
    }
}
void QIRCLineEdit::myTextEdited()
{
    if(m_Inputlist.count()==0){
        listindex=1;
    }else{
        listindex=m_Inputlist.count();
    }
}
void QIRCLineEdit::myclear()
{
    if(text()!=""){
        m_Inputlist.append(text());
        if(m_Inputlist.count()==0){
            listindex=1;
        }else{
            listindex=m_Inputlist.count();
        }
    }
    QLineEdit::clear();

相关阅读 更多 +
排行榜 更多 +
哥布林弹球b服手游下载

哥布林弹球b服手游下载

休闲益智 下载
小马样式盒游戏下载

小马样式盒游戏下载

休闲益智 下载
异变小镇中文版下载安装

异变小镇中文版下载安装

冒险解谜 下载