找回密码
 立即注册
收起左侧

qt中动态更新QListWid窗口里的信息

0
回复
3803
查看
[复制链接]

尚未签到

来源: 2015-5-4 15:27:01 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
写了一个模拟公交车运行的按钮,按下之后,实时报站,但是窗口并不会更新,维持初始状态,求解决方法。
以下代码
/* simulate */
void MyDialog:n_pushButton_3_clicked()
{
    while (1)
    {
    // 先清空显示
    ui->listWidget->clear();

    QFile file("bus_.xml");
    if (!file.open(QIODevice::ReadOnly)) return ;
    QDomDocument doc;
    if (!doc.setContent(&file))
    {
        file.close();
        return ;
    }
    file.close();

    QDomElement docElem = doc.documentElement();
    QDomElement c;
    QString curstation;

    int flag=0, count=0;

    QDomNode n = docElem.firstChild();

    while(!n.isNull())
    {
        if (n.isElement())
        {
            QDomElement e = n.toElement();

            QDomNodeList list = e.childNodes();
            if (flag == 1)
            {
                for(int i=0; i<list.count(); i++)
                {
                    QDomNode node = list.at(i);
                    if(node.isElement())
                    {
                        if (i == number)
                        {   qDebug()<<number;
                            ui->listWidget->addItem(new QListWidgetItem(QIcon("yuan.jpg"), node.toElement().text()));
                            curstation = node.toElement().text();
                            qDebug()<<"next station"<<curstation;
                        }
                        else{
                            ui->listWidget->addItem("           " + node.toElement().text());
                        }
                    }
                }
            }
            else
            {
                QDomNode node_count = list.at(0);
                count = node_count.toElement().text().toInt();
                //qDebug()<<count;
            }

            flag++;
        }
        n = n.nextSibling();
    }
    //char command[256] = {0};
    QString command;
    command = _config_2() + curstation ;
    qDebug()<<command;
    /* yuying */
    tts_open_test("/dev/ttyUSB0", (char *)command.toStdString().c_str());
    /* net_demo_string */
    /* string shuld be utf-8 */
    net_demo_string((char *)command.toStdString().c_str());
    qDebug()<<"net_demo_string";
    /* maybe change */
    QByteArray datagram = curstation.toStdString().c_str();
    sender->writeDatagram (datagram.data(), datagram.size(), QHostAddress::Broadcast, 45454);
    if (count == number)
    {
        return ;
    }
    //QWidget::update ();
    number++;
    sleep(1);
    }
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了