場景問題:比如當(dāng)我們遇到下位機(jī)有很多個(gè)端口的時(shí)候,上位機(jī)也需要在ui界面上設(shè)置相應(yīng)的控件,以及顯示端口的IP信息。通常,我們向下位機(jī)發(fā)送指令,會(huì)獲取到所有的端口的IP。
最開始的時(shí)候,我是這樣把一打數(shù)據(jù)放進(jìn)LineEdit中的:
? ? ? ? 先用split函數(shù)把接收到的數(shù)據(jù)按照特征切開來,放進(jìn)數(shù)組里,這樣就能把數(shù)據(jù)里的IP和端口號(hào)過濾出來了。
QStringList strlist = buf.split(" ");
if("01" == strlist.at(1)){
ui->lineEdit_6->setText(strlist.at(2));
ui->lineEdit_18->setText(strlist.at(3));
}else if("02" == strlist.at(1)){
ui->lineEdit_7->setText(strlist.at(2));
ui->lineEdit_19->setText(strlist.at(3));
}else if("03" == strlist.at(1)){
ui->lineEdit_8->setText(strlist.at(2));
ui->lineEdit_20->setText(strlist.at(3));
}else if("04" == strlist.at(1)){
ui->lineEdit_9->setText(strlist.at(2));
ui->lineEdit_21->setText(strlist.at(3));
}else if("05" == strlist.at(1)){
ui->lineEdit_10->setText(strlist.at(2));
ui->lineEdit_22->setText(strlist.at(3));
}else if("06" == strlist.at(1)){
ui->lineEdit_11->setText(strlist.at(2));
ui->lineEdit_23->setText(strlist.at(3));
}else if("07" == strlist.at(1)){
ui->lineEdit_12->setText(strlist.at(2));
ui->lineEdit_24->setText(strlist.at(3));
}else if("08" == strlist.at(1)){
ui->lineEdit_13->setText(strlist.at(2));
ui->lineEdit_25->setText(strlist.at(3));
}else if("09" == strlist.at(1)){
ui->lineEdit_14->setText(strlist.at(2));
ui->lineEdit_26->setText(strlist.at(3));
}else if("10" == strlist.at(1)){
ui->lineEdit_15->setText(strlist.at(2));
ui->lineEdit_27->setText(strlist.at(3));
}else if("11" == strlist.at(1)){
ui->lineEdit_16->setText(strlist.at(2));
ui->lineEdit_28->setText(strlist.at(3));
}else if("12" == strlist.at(1)){
ui->lineEdit_17->setText(strlist.at(2));
ui->lineEdit_29->setText(strlist.at(3));
}
}
??????????????????然后根據(jù)特征數(shù)據(jù)頭的不同放入相應(yīng)的LineEdit中
解決方法:但是這樣不太好看,后來我學(xué)到了方法二
??????????????????這個(gè)方法需要控件的名字保持一致,最好是默認(rèn)狀態(tài),并且是連續(xù)造出來的如此這般 如果是Label就把QLineedit改成QLabel
?文章來源地址http://www.zghlxwxcb.cn/news/detail-515375.html
for(int i = 1;i < 10; i++)
{
QLineEdit *lbl =
ui->centralWidget->findChild<QLineEdit *>("lineEdit_"+QString::number(i+5));
//括號(hào)內(nèi)是控件名的字符串拼接
ledt->settext("123");//然后就可以當(dāng)正??丶{(diào)用函數(shù)了
那么結(jié)合如split之類的操作就能輸入想要的數(shù)據(jù)了!文章來源:http://www.zghlxwxcb.cn/news/detail-515375.html
?
到了這里,關(guān)于Qt循環(huán)設(shè)置控件(LineEdit、label)的內(nèi)容的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!