[gelöst]]Text im Fenster ausgeben
[gelöst]]Text im Fenster ausgeben
Eine auf den ersten Blick profane Frage, würde gerne wissen, wie man in einem qt-Fenster Text ausgibt.
Es geht also um das klassische Hello-World-Programm.
Was in C printf bzw. puts wäre bzw. in klassischem C++ cout.
Es geht also um das klassische Hello-World-Programm.
Was in C printf bzw. puts wäre bzw. in klassischem C++ cout.
Zuletzt geändert von mampfi am 7. September 2015 13:06, insgesamt 3-mal geändert.
Re: Text im Fenster ausgeben
Ein Qt-Fenster nennt sich QWidget.
QWidget ableiten.
In deinem Widget die 'paintEvent'-Methode überschreiben:
ungetestet
QWidget ableiten.
In deinem Widget die 'paintEvent'-Methode überschreiben:
Code: Alles auswählen
void DeinWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawText(0,0,"Hello World");
}
Re: Text im Fenster ausgeben
Jetzt ist noch die Frage, wo ich das einbaue.
Das entsprechende Objekt der Begierde ist ein automatisch von qtcreator erzeugtes Programm bestehend u.a. aus:
main.cpp
mainwindow.cpp
mainwindow.h
(und manuell von mir eingefügtem Button nebst Routinen für das Verlassen des Programms)
mainwindow.cpp ist wohl die Stelle an der das Codebeispiel eingebaut werden, hier taucht qtwidget auf:
Das entsprechende Objekt der Begierde ist ein automatisch von qtcreator erzeugtes Programm bestehend u.a. aus:
main.cpp
mainwindow.cpp
mainwindow.h
(und manuell von mir eingefügtem Button nebst Routinen für das Verlassen des Programms)
mainwindow.cpp ist wohl die Stelle an der das Codebeispiel eingebaut werden, hier taucht qtwidget auf:
Code: Alles auswählen
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton_ende, SIGNAL(clicked()), SLOT(anwendung_quit()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::anwendung_quit()
{
qApp->quit();
}
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Text im Fenster ausgeben
Code: Alles auswählen
QLabel *lbl = new QLabel("Hello World");
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: Text im Fenster ausgeben
Streng genommen wären es ja "qt-Grundlagen"
Probier ich demnächst aus.
Probier ich demnächst aus.
Re: Text im Fenster ausgeben
Entsprechendes Codefragment eingesetzt
Mit "einfachem C++-Verstand" verstehe ich das Statement so: Es wird ein Zeiger auf ein Object vom Typ QLabel erstellt, aber es wird nichts damit getan.
Fehlermeldung, qtcreator
qt_widget1/mainwindow.cpp: In constructor 'MainWindow::MainWindow(QWidget*)':
../qt_widget1/mainwindow.cpp:12:12: warning: unused variable 'lbl' [-Wunused-variable]
QLabel *lbl = new QLabel("Hello World");
Danach wird entsprechend der Fehlermeldung das QLabel-Object ignoriert und das Programm ausgeführt.
Mit "einfachem C++-Verstand" verstehe ich das Statement so: Es wird ein Zeiger auf ein Object vom Typ QLabel erstellt, aber es wird nichts damit getan.
Code: Alles auswählen
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QLabel *lbl = new QLabel("Hello World"); /******************************** Hier ************************************/
connect(ui->pushButton_ende, SIGNAL(clicked()), SLOT(anwendung_quit()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::anwendung_quit()
{
qApp->quit();
}
Fehlermeldung, qtcreator
qt_widget1/mainwindow.cpp: In constructor 'MainWindow::MainWindow(QWidget*)':
../qt_widget1/mainwindow.cpp:12:12: warning: unused variable 'lbl' [-Wunused-variable]
QLabel *lbl = new QLabel("Hello World");
Danach wird entsprechend der Fehlermeldung das QLabel-Object ignoriert und das Programm ausgeführt.
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Text im Fenster ausgeben
Dem Label sollte man natürlich noch sagen, dass es auch sichtbar sein sollte ... ein show() z.B. Oder man schaut gaaanz kurz in die Doku:
http://doc.qt.io/qt-4.8/qlabel.html#details
http://doc.qt.io/qt-4.8/qlabel.html#details
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: Text im Fenster ausgeben
Wobei noch interessant wäre, ob die "Stelle" sprich Datei/Funktion die richtige ist.
Re: Text im Fenster ausgeben
So, ich hab im debian-Forum auch mal die Fragestellung gepostet und dabei ist folgende Näherung herausgekommen:
(https://debianforum.de/forum/viewtopic. ... 2#p1048962)
Problem ist als gelöst zu betrachten.
(Der neue Button pushButton_hello führt Entsprechendes aus)
(https://debianforum.de/forum/viewtopic. ... 2#p1048962)
Problem ist als gelöst zu betrachten.
(Der neue Button pushButton_hello führt Entsprechendes aus)
Code: Alles auswählen
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton_hello, SIGNAL(clicked()), SLOT(hello_world()));
connect(ui->pushButton_ende, SIGNAL(clicked()), SLOT(anwendung_quit()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::hello_world()
{
qDebug()<<"Hallo Welt im debug-Fenster";
ui->pushButton_hello->setText("Hallo Welt");
}
void MainWindow::anwendung_quit()
{
qApp->quit();
}
Re: [gelöst]Text im Fenster ausgeben
Bleibt noch die Frage, warum ist das jetzt in C++-Grundlagen gerutscht? Was hat das mit C++-Grundlagen zu tun?
Re: [gelöst]Text im Fenster ausgeben
Das würde ich auch meinen.
Re: [gelöst]Text im Fenster ausgeben
Kleiner Nachtrag:
Bin noch auf das gestoßen:
http://cs.smith.edu/dftwiki/index.php/Q ... pplication
(Allerdings noch nicht ausprobiert, in meinem Demo-Programm)
Bin noch auf das gestoßen:
http://cs.smith.edu/dftwiki/index.php/Q ... pplication
(Allerdings noch nicht ausprobiert, in meinem Demo-Programm)