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

qcom代码问题

7
回复
6823
查看
[复制链接]
累计签到:168 天
连续签到:1 天
来源: 2013-11-7 15:13:16 显示全部楼层 |阅读模式
1Qter豆
本帖最后由 6gv0000 于 2013-11-7 15:20 编辑

弱弱的问一下,那位大神能帮小弟翻译一下下面的代码:
void MainWindow::sendMsg()
{
    QByteArray buf;
    if(ui->sendAsHexcheckBox->isChecked()){
        QString str;
        bool ok;
        char data;
        QStringList list;
        str = ui->sendMsgLineEdit->text();
        list = str.split(" ");
        for(int i = 0; i < list.count(); i++){
            if(list.at(i) == " ")
                continue;
            if(list.at(i).isEmpty())
                continue;
            data = (char)list.at(i).toInt(&ok, 16);
            if(!ok){
                QMessageBox::information(this, tr("提示消息"), tr("输入的数据格式有错误!"), QMessageBox::Ok);
                if(obotimer != NULL)
                    obotimer->stop();
                ui->sendmsgBtn->setText(tr("发送"));
                ui->sendmsgBtn->setIcon(QIcon(":new/prefix1/src/send.png"));
                return;
            }
            buf.append(data);
        }
    }else{
这段代码实现的功能是发送数据,请大神帮忙详细翻译一下,新手,看不懂的?
还有Qstring类到底是用来做什么的?

最佳答案

查看完整内容

if(ui->sendAsHexcheckBox->isChecked()){ //若为16进制发送 QString str; bool ok; char data; QStringList list; str = ui->sendMsgLineEdit->text(); //读取发送区的数据赋值str list = str.split(" "); //将str数据由空格分割赋值给list for(int i = 0; i < list.count(); i++){ //索引list的所有字符串 ...
回复

使用道具 举报

尚未签到

2013-11-7 15:13:17 显示全部楼层
if(ui->sendAsHexcheckBox->isChecked()){       //若为16进制发送
        QString str;
        bool ok;
        char data;
        QStringList list;
        str = ui->sendMsgLineEdit->text();       //读取发送区的数据赋值str
        list = str.split(" ");                                 //将str数据由空格分割赋值给list
        for(int i = 0; i < list.count(); i++){        //索引list的所有字符串
            if(list.at(i) == " ")                              //跳过空格    PS.其实我也不明白为啥有这句
                continue;
            if(list.at(i).isEmpty())                        //若为空,跳过
                continue;
            data = (char)list.at(i).toInt(&ok, 16); //将字符串以16进制转换为INT并赋值给data,对应上面的:if语句若为16进制
            if(!ok){                                             //若转换失败,进行一些操作,如弹出提示信息               
                QMessageBox::information(this, tr("提示消息"), tr("输入的数据格式有错误!"), QMessageBox::Ok);
                if(obotimer != NULL)
                    obotimer->stop();
                ui->sendmsgBtn->setText(tr("发送"));
                ui->sendmsgBtn->setIcon(QIcon(":new/prefix1/src/send.png"));
                return;
            }
            buf.append(data);                      //添加一个元素
        }
    }
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-11-7 15:24:49 显示全部楼层
加 qDebug打印输出! 看看究竟是什么!  不要漫天问代码!
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2013-11-7 16:24:59 显示全部楼层
study_wen 发表于 2013-11-7 15:24
加 qDebug打印输出! 看看究竟是什么!  不要漫天问代码!

请问,QDebug怎么用啊?
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-11-7 16:32:15 显示全部楼层
6gv0000 发表于 2013-11-7 16:24
请问,QDebug怎么用啊?


您不会查下帮助文档啊!
void qDebug ( const char * msg, ... )
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2013-11-7 16:55:25 显示全部楼层
study_wen 发表于 2013-11-7 16:32
您不会查下帮助文档啊!
void qDebug ( const char * msg, ... )

找过了,没有。
我都说了,我是新手,才学一周。您多包涵。
回复

使用道具 举报

尚未签到

2013-11-7 22:41:55 显示全部楼层
6gv0000 发表于 2013-11-7 16:55
找过了,没有。
我都说了,我是新手,才学一周。您多包涵。

qDebug  简单说就像printf一样,在一个黑框框里打印东西,便于调试
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2013-11-11 09:13:47 显示全部楼层
m__dd 发表于 2013-11-7 22:32
if(ui->sendAsHexcheckBox->isChecked()){       //若为16进制发送
        QString str;
        bool ok; ...

嘿嘿 谢谢帮助 我再好好读一读 qdebug也弄明白了 谢谢了
回复

使用道具 举报

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

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