Unsolved Neue UI deklarieren, wie?
-
Hallo Markus,
danke für deine Antwort.
Ja die Headerdatei ist eingebunden.
Der genaue Fehler:conflicting declaration 'frm_Main w'
previous declaration as 'frm_Welcome w' -
Hallo Florian,
scheinbar hast du die Variable "w" versucht, zweimal zu deklarieren - einmal als Typ "frm_Main", dann als Typ "frm_Welcome". Innerhalb desselben scopes musst du daher einen anderen Variablennamen nehmen.
LG,
Markus
-
Genau das habe ich versucht, habe versucht die Variable x zu nennen.
Dann kriege ich die Fehlermeldung nicht deklarierte Variable.Nun wollte ich wissen wo dieses 'w' deklariert wird.
-
Hm, vielleicht poste besser einmal den Code von deinen Files.
-
-- main.cpp
#include "vsys_welcome.h"
#include "vsys_main.h"
#include <QApplication>int main(int argc, char *argv[])
{
QApplication a(argc, argv);
frm_Welcome w;
frm_Main w;
// Programmname-Leiste ausblenden
w.setWindowFlags(Qt::FramelessWindowHint);
w.show();
return a.exec();
}-- vsys_welcome.h
#ifndef VSYS_WELCOME_H
#define VSYS_WELCOME_H#include <QMainWindow>
#include <QPushButton>namespace Ui {
class frm_Welcome;
}class frm_Welcome : public QMainWindow
{
Q_OBJECTpublic:
explicit frm_Welcome(QWidget *parent = 0);
~frm_Welcome();private slots:
handleButton();private:
QPushButton *btn_WhatsNew;
Ui::frm_Welcome *ui;
};#endif // VSYS_WELCOME_H
-- vsys_welcome.cpp
#include "vsys_welcome.h"
#include "ui_frm_welcome.h"frm_Welcome::frm_Welcome(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::frm_Welcome)
{
ui->setupUi(this);
}frm_Welcome::~frm_Welcome()
{
delete ui;
} -
Wenn du QtCreator verwendest, ist es übrigens vielleicht auch leichter, die neue GUI Klasse vielleicht über QtCreator hinzuzufügen statt die alte manuell zu kopieren.
-
Danke es hat funktioniert.
Ich habe nun noch ein kleines Problem für welches ich nicht extra ein neues Thema aufmachen möchte.
Hier: btn_WhatsNew->actions(addAction(QList<QAction));
Kriege ich bei 'QAction' : template argument 1 is invalid
-
Hallo Florian,
das Problem, das du ursprünglich hattest, ist, dass du keine Klasse "frm_Main" definiert hattest. Dadurch konntest du natürlich auch kein Objekt vom Typ dieser Klasse definieren.
Ich persönlich verwende die Dateinamen so wie die Klassen, die sie definieren. Dann weiß ich gleich durch das Include, welche Klassen ich zum Programm hinzugefügt habe.
Zu deiner anderen Frage:
- Was ist btn_WhatsNew für ein Objekt? QPushButton?
- Was möchtest du damit machen?
LG,
Markus
-
Danke Markus,
ja btn_WhatsNew iet ein PushButton, er soll eine Internetseite öffnen, da ich aber nicht weiß wie das geht, wollte ich ihm vorerst keine Funktion zuweisen.
-
Wenn du den Button einfach nur zum UI hinzufügen möchtest, könntest du im QtCreator z.B. auf die entsprechende .ui klicken und den Button einfach hinzufügen.
LG,
Markus
PS: Und wenn du eine Antwort hilfreich gefunden hast, wäre es nett, diese zu voten (über dem Post der Pfeil nach oben).
-
Danke,
wenn ich das ganze auskommentiere kriege ich die Fehlermeldung:
undefined reference to 'frm_Welcome::qt_metacall(QMetaObject::Call _c, int _id, void **_a)'
Das kommt aus der 'moc_vsys_welcome.cpp' welche wahrscheinlich eine automatisch erzeugte Datei ist, da ich diese nicht erzeuge, weiß nicht wie der Qt-Creator das macht.