QComboBox mit qvariant zu selected setzen....
Verfasst: 23. Mai 2006 14:53
Ich habe ein QComboBox von tabelle a kommt nur der land code ... aber im box moechte ich den vollen landname zeigen ...
tabelle b ist so....
CREATE TABLE countries (id INTEGER PRIMARY KEY, name TEXT, code TEXT);
INSERT INTO countries VALUES (1,'Italy','IT');
INSERT INTO countries VALUES (2,'Germany','DE');
INSERT INTO countries VALUES (3,'United Kingdom','GB');
INSERT INTO countries VALUES (4,'USA','US');
INSERT INTO countries VALUES (6,'Switzerland','CH');
und bei if (browsercode == selected) { is die uebreinstimmung ..
und wie activ setzen dass dieses sichtbar ist und nicht der ersten....
und wie den int qvariant retor bekommen ....?
die daten kommen so...
tabelle b ist so....
CREATE TABLE countries (id INTEGER PRIMARY KEY, name TEXT, code TEXT);
INSERT INTO countries VALUES (1,'Italy','IT');
INSERT INTO countries VALUES (2,'Germany','DE');
INSERT INTO countries VALUES (3,'United Kingdom','GB');
INSERT INTO countries VALUES (4,'USA','US');
INSERT INTO countries VALUES (6,'Switzerland','CH');
und bei if (browsercode == selected) { is die uebreinstimmung ..
und wie activ setzen dass dieses sichtbar ist und nicht der ersten....
und wie den int qvariant retor bekommen ....?
Code: Alles auswählen
typedef QMap<int, QStringList> resultMap;
void Tab_Addo::AddCountry(int dbi)
{
/* QComboBox = para_9 */
QString selected = Item("land_code",dbi); /* kommt DE raus andere tabelle */
para_9->clear();
int loop = 0;
resultMap relist = Query_Qmap_Report( QString( "SELECT id , name, code FROM countries order by name" ) );
resultMap::Iterator it;
for ( it = relist.begin(); it != relist.end(); ++it ) {
QStringList roxe = it.value();
int dbid;
QString idsign = roxe.at(0).toLocal8Bit().constData();
QString namecountry = roxe.at(1).toLocal8Bit().constData();
QString browsercode = roxe.at(2).toLocal8Bit().constData();
if (is_numeric(idsign)) {
bool ok;
dbid = idsign.toInt(&ok);
loop++;
if (browsercode == selected) {
para_9->addItem(namecountry,dbid);
} else {
para_9->addItem(namecountry,dbid);
}
}
}
}
Code: Alles auswählen
resultMap Sqlitedb::Query_Qmap_Report(const QString & fullquery)
{
resultMap res;
if (!isOpen()) {
return res; /* not connect! */
}
SqlLog(QString( "%1 from Query_Qmap_Report 1" ).arg( fullquery )); /* internal log */
sqlite3_stmt *vm;
const char *tail;
int ncol;
/*int rownum = 0;*/
int recnum = 0;
QString r;
int err=0;
QStringList linelister;
err=sqlite3_prepare(_db,fullquery.toUtf8().constData(),-1,&vm, &tail);
if (err == SQLITE_OK) {
while ( sqlite3_step(vm) == SQLITE_ROW ){
ncol = sqlite3_data_count(vm);
recnum++;
linelister.clear();
/*file_put_contents_append_debug("resloop.dat","--------------------");*/
for (int e=0; e<ncol; e++){
r = QString::fromUtf8((const char *) sqlite3_column_text(vm, e));
linelister.append(r);
/*file_put_contents_append_debug("resloop.dat",QString("%1 dat = %2" ).arg( QString::number(e) , r ));*/
}
res.insert(recnum,linelister);
}
sqlite3_finalize(vm);
} else {
lastErrorMessage = QString::fromUtf8(sqlite3_errmsg(_db));
}
return res;
}