dies ist meine erste Frage und ich bin ziemlich struggeling. Ich verwende Qt zum Erstellen einer Software für die exzentrische Ansicht. Eine Gruppe von Studenten hat dieses Projekt schon einmal gemacht, also bekam ich vorgefertigten Code, mit dem ich arbeiten konnte.Konvertierung von Argument 1 von "QWidget *" nach "QGroupBox *" nicht möglich
Mein Problem ist das folgende: Ich codiere nicht den üblichen Weg, ich benutze den QDesigner. Ich habe einen Scroll-Bereich, in den ich einige QGroupBoxes einfügen möchte. Es gibt eine allgemeine Box namens "Eigenschaften", die einige andere Boxen mit einem vertikalen Layout enthält.
Nun heißt eines der Felder "symbolgen" und verwendet eine benutzerdefinierte Klasse namens "SymbolGen". Die Klasse ist wie folgt definiert:
class SymbolGen : public QGroupBox
Nun, was ich tun möchte, ist, alle Boxen aus dem Feld "Eigenschaften" zu extrahieren. Das heißt: Ich möchte die Gruppe "Eigenschaften" durch eine Bezeichnung "Eigenschaften" und darunter durch die kleineren Kästchen ersetzen. Nun, was mir Qt sagt, ist der folgende:
Fehler: C2664: "SymbolGen::SymbolGen(const SymbolGen &)" : Konvertierung von Argument 1 von "QWidget *" in "QGroupBox *" nicht m”glich
Ja, ich bin Deutsch, in Englisch:
Error: C2664: "SymbolGen::SymbolGen(const SymbolGen &)" : Conversion from argument 1 of "QWidget *" to "QGroupBox *" not possible.
Was ich hier ist zu sehen, dass diese spezifische Gruppe Box „symbolgen“ (etwas hält wichtige Variablen in der Klasse) braucht eine andere Gruppe um. Wie kann ich diese Box ohne Fehler trennen?
Danke für Ihre Hilfe!
edit: // Linie, die diesen Fehler verursacht:
symbolgen = new SymbolGen(scrollAreaWidgetContents_2);
Dieses bei "ui_admin.h" gefunden wird.
edit: // Definition von "scrollAreaWidgetContents_2" von "ui_admin.h":
scrollAreaWidgetContents_2 = new QWidget();
scrollAreaWidgetContents_2->setObjectName(QStringLiteral("scrollAreaWidgetContents_2"));
scrollAreaWidgetContents_2->setGeometry(QRect(0, 0, 503, 851));
edit: // SymbolGen :: SymbolGen (const SymbolGen &):
SymbolGen::SymbolGen(QGroupBox *g) : QGroupBox(g)
{
srand (time(NULL));
//Wörterquelle lesen
std::ifstream f("source/ngerman.txt");
std::string l;
if(f.is_open())
{
while(f.good())
{
getline(f,l);
words.push_back(l);
//if(words.size() > 10000) break;
}
}
f.close();
//Satzquelle lesen
std::ifstream fs("source/sentences.txt");
//std::string l;
if(fs.is_open())
{
while(fs.good())
{
getline(fs,l);
phrase.push_back(l);
//if(words.size() > 10000) break;
}
}
fs.close();
}
Könnten Sie auch die Zeile posten, die den Fehler verursacht? –
Sicher, ich werde es in meinem Hauptpost hinzufügen. –
Nun frage ich mich, ob der Fehler innerhalb des Kopierkonstruktors von 'SymbolGen' oder beim Aufruf dieses Kopierkonstruktors auftritt. Letzteres macht aber keinen Sinn, da das Argument des Kopierkonstruktors offensichtlich nicht vom Typ 'QGroupBox *' ist. Kannst du den Inhalt von 'SymbolGen :: SymbolGen (const SymbolGen &)' posten? –