gerome69 hat geschrieben:
Beschäftige dich mal mit dem "Scope" von Variablen!
label1 ist nach Verlassen dieser Methode nicht mehr vorhanden.
da hab ich meinen Code falsch zitiert. Also ich hab das label in der Klassendefinition als Variable definiert und dann bei der Erstellung "QLabel *" weggelassen.
Im Tutorial 4 (Let there be widgets), wird zur Laufzeit ein Button erstellt. Allerdings in Constructor. Also habe ich selbiges versucht und das ging auch.
Code: Alles auswählen
ScrollBook::ScrollBook(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
setFixedSize(200, 120);
QPushButton *quit = new QPushButton(tr("Quit"), this);
quit->setGeometry(62, 40, 75, 30);
quit->setFont(QFont("Times", 18, QFont::Bold));
connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
}
Nun wollte ich selbiges auch auf Knopfdruch erreichen und habe den Code in das on_clicked Ereignisses des Buttons geschrieben.
Code: Alles auswählen
void ScrollBook::on_pushButton_clicked()
{
setFixedSize(200, 120);
quit2 = new QPushButton(tr("Quit 2"), this);
quit2->setGeometry(62, 80, 75, 30);
quit2->setFont(QFont("Times", 18, QFont::Bold));
connect(quit2, SIGNAL(clicked()), qApp, SLOT(quit2()));
}
Mit der Variablendefinition des Buttons in der Klasse:
Code: Alles auswählen
class ScrollBook : public QMainWindow
{
Q_OBJECT
public:
ScrollBook(QWidget *parent = 0);
~ScrollBook();
private:
QPushButton *quit2;
Ui::ScrollBookClass ui;
private slots:
void on_pushButton_clicked();
};
aber auch hier passiert nichts