QT 小问题

wang911007 2011-12-29 04:02:41
void MainWindow::on_startButon_clicked(bool checked)
{
if(ui->comOneCB->checkState()) //1
{
testCOM(tr("COM2"), tr("串口1"));
qApp->processEvents();

}
if(ui->comTwoCB->checkState()) //2
{
testCOM(tr("COM4"), tr("串口2"));
qApp->processEvents();
}
if(ui->masterUSBCB->checkState()) //3
{
masterUSB();
qApp->processEvents();
}
if(ui->netCB->checkState()) //4
{
netConnect();
qApp->processEvents();
}
}



void MainWindow::testCOM(QString com, QString device)
{
if(recvbuff == sendbuff)
{
ui->textEdit->append(tr(" 正常"));

}
else
{
ui->recordtextEdit->append(tr("错误"));

}
}
.
.
.
.
如何在 ui->recordtextEdit->append(tr("错误")); 时停止//2 //3 //4的测试。 路过高手帮忙写下代码,菜鸟谢过
...全文
114 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang911007 2011-12-29
  • 打赏
  • 举报
回复
555555555
搞了半天 是这个 bool ok=testCOM(QString com,QString device) 要用实参~!!!
我是学友 2011-12-29
  • 打赏
  • 举报
回复
这就不知道了,没看到你程序别的地方,自己网上搜一下错误吧,一般都能搜到,下班闪人
wang911007 2011-12-29
  • 打赏
  • 举报
回复
错误:expected primary-expression before 'com'
错误:expected primary-expression before 'device'
错误:expected ',' or ';' before 'if'
警告:unused variable 'ok'
错误:expected '}' at end of input
这是错误 什么意思啊 不知道怎么发图
我是学友 2011-12-29
  • 打赏
  • 举报
回复
  bool ok=testCOM(QString com,QString device)

if(ok)
{
if(ui->comOneCB->checkState())
{
testCOM(tr("COM2"), tr("串口1"));
qApp->processEvents();
}
if(ui->comTwoCB->checkState())
{
testCOM(tr("COM4"), tr("串口2"));
qApp->processEvents();
}
if(ui->masterUSBCB->checkState())
{
masterUSB();
qApp->processEvents();
}
if(ui->netCB->checkState())
{
netConnect();
qApp->processEvents();
}

}
else
{
qDebug(tr("串口错误"));
}

这么写就差不多了,不过只是针对你贴上来的代码,你别的地方怎么写不知道,还有这就是代码样式
wang911007 2011-12-29
  • 打赏
  • 举报
回复
不明白你说什么 2.3.4是放到哪个if ?
还有代码样式是什么?
我是学友 2011-12-29
  • 打赏
  • 举报
回复
逻辑关系应该是如果是正常,就继续往下执行,程序里正常返回true,所以你标着2,3,4的那些语句应该放在if里面,else是返回false的情况,你可以在里面写个提醒出错的语句什么的,或是直接为空也可以。
还有就是发帖的时候是可以加上代码样式的,你这行数不多还好点,要是贴上来几十行,光看花括号就够看一壶的了,以后贴上代码样式,别人帮你看代码也轻松点
wang911007 2011-12-29
  • 打赏
  • 举报
回复
bool ok=testCOM(QString com,QString device)

if(ok)
{
if(ui->comOneCB->checkState())
{
testCOM(tr("COM2"), tr("串口1"));
qApp->processEvents();

}
}
else
{
if(ui->comTwoCB->checkState())
{
testCOM(tr("COM4"), tr("串口2"));
qApp->processEvents();
}
if(ui->masterUSBCB->checkState())
{
masterUSB();
qApp->processEvents();
}
if(ui->netCB->checkState())
{
netConnect();
qApp->processEvents();
}
}
请问是这样写吗?
我是学友 2011-12-29
  • 打赏
  • 举报
回复
报什么错啊
wang911007 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 storylsl 的回复:]
写错了一个地方

C# code

bool ok=testCOM(...,...)
if(ok)
{
.....
}
else
{
.....
}
[/Quote]
这个放到on_startButon_clicked(bool checked)函数里 划红线啊
我是学友 2011-12-29
  • 打赏
  • 举报
回复
写错了一个地方
bool ok=testCOM(...,...)
if(ok)
{
.....
}
else
{
.....
}
我是学友 2011-12-29
  • 打赏
  • 举报
回复
给的分好少
我是学友 2011-12-29
  • 打赏
  • 举报
回复
你的testCOM函数定义个返回值,判断真假的,头文件里不要void 这么写了,bool testCOM(...,...)
然后
bool MainWindow::testCOM(QString com, QString device)  
{
if(recvbuff == sendbuff)
{
ui->textEdit->append(tr(" 正常"));
return true;
}
else
{
ui->recordtextEdit->append(tr("错误"));
return false;
}
}


再然后在on_startButon_clicked(bool checked)函数里:
bool ok=testCOM(...,...)
if(true)
{
.....
}
else
{
.....
}
这样,当返回为真,执行你标着1的函数,如果为假,else里面写上你要执行的另外的函数就行了,你标着2,3,4的函数应该写if里,不知道你明白没,记得结贴

16,201

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧