QComboBox per Loop füllen

Verschiedenes zu Qt
Antworten
ape
Beiträge: 44
Registriert: 5. Dezember 2007 15:07

QComboBox per Loop füllen

Beitrag von ape »

Hallo,

ich habe im Moment eine QComboBox, welche händisch gefüllt ist.
Beispiel:

Code: Alles auswählen

interfaceComboBox->clear();
interfaceComboBox->insertItems(0, QStringList()
<< QApplication::translate("MainWindow", "COM1", 0, QApplication::UnicodeUTF8)
<< QApplication::translate("MainWindow", "COM2", 0, QApplication::UnicodeUTF8)
<< QApplication::translate("MainWindow", "COM3", 0, QApplication::UnicodeUTF8)
);

Nun habe ich inzwischen mittels QextSerialPort einen ansatz von automatismus was die Erkennung von Com-Ports angeht.

Auf diesem Wege kriege ich einmalig alle gefundenen Com-Ports in mein QTextEdit gelistet:

Code: Alles auswählen

QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();	
for (int i = 0; i < ports.size(); i++) 
{
loggingBox->append(ports.at(i).portName.toLocal8Bit().constData());
loggingBox->append(ports.at(i).enumName.toLocal8Bit().constData());		}

Ok um die ComboBox automatisch richtig automatisch zu füllen müsste ich ja in etwa sowas machen:

Code: Alles auswählen

QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();
interfaceComboBox->clear();
// define 2 string-var's
QString interfaceString1;
QString interfaceString2;
// loop and fill comboBox
for (int i = 0; i < ports.size(); i++) 
{
interfaceString1 = ports.at(i).enumName.toLocal8Bit().constData();
interfaceString2 = ports.at(i).portName.toLocal8Bit().constData() + interfaceString1;
		
interfaceComboBox->insertItems(0, QStringList()
// geht
//<< QApplication::translate("MainWindow", (ports.at(i).portName.toLocal8Bit().constData()), 0, QApplication::UnicodeUTF8)
// broken
<< QApplication::translate("MainWindow",interfaceString2, 0, QApplication::UnicodeUTF8)
);
}
Das Problem dabei ist....mein stümperhaftes zusammen-basteln der Strings ended in einem Fehler.

Code: Alles auswählen

mainwindow.cpp:228: error: no matching function for call to `QCoreApplication::translate(const char[11], QString&, int, QCoreApplication::Encoding)'
Was mache ich falsch ?
Ist es die Verwendung von translate an sich oder wie mach ich das ganze etwas eleganter ?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dein zweiter Parameter ist ein QString, erwartet wird ein const char*

Was soll das ganze .toLocal8Bit() - Zeugs? Ich glbuae das solltest Du Dir nochmal anschauen!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Christian81 hat geschrieben:glbuae
ROTFL :D Ich hab ja auch mal nen Buchstabendreher drin, aber der ist klasse.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

macman hat geschrieben:
Christian81 hat geschrieben:glbuae
ROTFL :D Ich hab ja auch mal nen Buchstabendreher drin, aber der ist klasse.
Das ist schlimm bei mir - vor allem wenn ich nicht nochmal Korrektur lese :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
ape
Beiträge: 44
Registriert: 5. Dezember 2007 15:07

Beitrag von ape »

@Christian

ich orientiere mich da gerade an den Beispielen aus QextSerialPort.
Der .toLocal8Bit Part ist ne 1:1 Kopie aus dem Example :D

Gruss
ape
Antworten