PDA

View Full Version : cannot call constructor 'Qstring::Qstring' directly



Ludwig
4th April 2014, 11:38
Here is my code, I am trying to construct a table but nothing so far, I have read and tried everything but can't find a solution yet, if somebody knows what is going on, please help !
the lines in bold are the problem



void MainWindow::print2Box(){

QHash<QString, QLineEdit*> hash_entries;

hash_entries["00"] = ui->lineEdit_1;
hash_entries["10"] = ui->lineEdit_2;
hash_entries["20"] = ui->lineEdit_3;
hash_entries["30"] = ui->lineEdit_10;
hash_entries["40"] = ui->lineEdit_11;
hash_entries["50"] = ui->lineEdit_12;
hash_entries["60"] = ui->lineEdit_19;
hash_entries["70"] = ui->lineEdit_20;
hash_entries["80"] = ui->lineEdit_21;

hash_entries["01"] = ui->lineEdit_4;
hash_entries["11"] = ui->lineEdit_5;
hash_entries["21"] = ui->lineEdit_6;
hash_entries["31"] = ui->lineEdit_13;
hash_entries["41"] = ui->lineEdit_14;
hash_entries["51"] = ui->lineEdit_15;
hash_entries["61"] = ui->lineEdit_22;
hash_entries["71"] = ui->lineEdit_23;
hash_entries["81"] = ui->lineEdit_24;

hash_entries["02"] = ui->lineEdit_7;
hash_entries["12"] = ui->lineEdit_8;
hash_entries["22"] = ui->lineEdit_9;
hash_entries["32"] = ui->lineEdit_16;
hash_entries["42"] = ui->lineEdit_17;
hash_entries["52"] = ui->lineEdit_18;
hash_entries["62"] = ui->lineEdit_25;
hash_entries["72"] = ui->lineEdit_26;
hash_entries["82"] = ui->lineEdit_27;

hash_entries["03"] = ui->lineEdit_28;
hash_entries["13"] = ui->lineEdit_29;
hash_entries["23"] = ui->lineEdit_30;
hash_entries["33"] = ui->lineEdit_37;
hash_entries["43"] = ui->lineEdit_38;
hash_entries["53"] = ui->lineEdit_39;
hash_entries["63"] = ui->lineEdit_46;
hash_entries["73"] = ui->lineEdit_47;
hash_entries["83"] = ui->lineEdit_48;

hash_entries["04"] = ui->lineEdit_31;
hash_entries["14"] = ui->lineEdit_32;
hash_entries["24"] = ui->lineEdit_33;
hash_entries["34"] = ui->lineEdit_40;
hash_entries["44"] = ui->lineEdit_41;
hash_entries["54"] = ui->lineEdit_42;
hash_entries["64"] = ui->lineEdit_49;
hash_entries["74"] = ui->lineEdit_50;
hash_entries["84"] = ui->lineEdit_51;

hash_entries["05"] = ui->lineEdit_34;
hash_entries["15"] = ui->lineEdit_35;
hash_entries["25"] = ui->lineEdit_36;
hash_entries["35"] = ui->lineEdit_43;
hash_entries["45"] = ui->lineEdit_44;
hash_entries["55"] = ui->lineEdit_45;
hash_entries["65"] = ui->lineEdit_52;
hash_entries["75"] = ui->lineEdit_53;
hash_entries["85"] = ui->lineEdit_54;

hash_entries["06"] = ui->lineEdit_55;
hash_entries["16"] = ui->lineEdit_56;
hash_entries["26"] = ui->lineEdit_57;
hash_entries["36"] = ui->lineEdit_64;
hash_entries["46"] = ui->lineEdit_65;
hash_entries["56"] = ui->lineEdit_66;
hash_entries["66"] = ui->lineEdit_73;
hash_entries["76"] = ui->lineEdit_74;
hash_entries["86"] = ui->lineEdit_75;

hash_entries["07"] = ui->lineEdit_58;
hash_entries["17"] = ui->lineEdit_59;
hash_entries["27"] = ui->lineEdit_60;
hash_entries["37"] = ui->lineEdit_67;
hash_entries["47"] = ui->lineEdit_68;
hash_entries["57"] = ui->lineEdit_69;
hash_entries["67"] = ui->lineEdit_76;
hash_entries["77"] = ui->lineEdit_77;
hash_entries["87"] = ui->lineEdit_78;

hash_entries["08"] = ui->lineEdit_61;
hash_entries["18"] = ui->lineEdit_62;
hash_entries["28"] = ui->lineEdit_63;
hash_entries["38"] = ui->lineEdit_70;
hash_entries["48"] = ui->lineEdit_71;
hash_entries["58"] = ui->lineEdit_72;
hash_entries["68"] = ui->lineEdit_79;
hash_entries["78"] = ui->lineEdit_80;
hash_entries["88"] = ui->lineEdit_81;

for(int y_cord = 0; y_cord < 9; y_cord++){
for(int x_cord=0; x_cord < 9; x_cord++){
if(box[x_cord][y_cord] == 0){
hash_entries[QString::QString("%1%2").arg(x_cord).arg(y_cord)]->setText("");
hash_entries[QString::QString("%1%2").arg(x_cord).arg(y_cord)]->setDisabled(0);

}
else{
hash_entries[QString::QString("%1%2").arg(x_cord).arg(y_cord)]->setText(QString::number(box[x_cord][y_cord]));
if(disablebox[x_cord][y_cord] == 1){
hash_entries[QString::QString("%1%2").arg(x_cord).arg(y_cord)]->setDisabled(1);
}
}
}

}

}

rawfool
4th April 2014, 13:35
Please embed your code between
[/ CODE] tags

As I see, your syntax is wrong.
You have to invoke the constructor of QString as [CODE]QString("%1%2").arg(x_cord).arg(y_cord)
And you can't setText() to QHash item.

anda_skoa
7th April 2014, 09:40
And you can't setText() to QHash item.
The hash contains QLineEdit pointers so that is ok.

Cheers,
_