Seite 1 von 1

QSplashScreen: Text einblenden

Verfasst: 13. März 2006 22:14
von xentor
Hallo,

mal vorab: vielen Dank an alle Poster, ihr habt mir schon sehr oft geholfen (auch wenn ihr es nicht wisst).

Jetzt zu meinem Problem:

Code: Alles auswählen


// getestet mit QT= 4.1.1/Windows
int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	myMainWindow mainwin;
	QSplashScreen *splash = new QSplashScreen(
		QPixmap("logo.png")
	);
	splash->finish(&mainWin);
	splash->setFont(QFont("Helvetica", 12, QFont::Bold));
	splash->show();
	splash->showMessage(
		QObject::tr("Initializing..."), 
		Qt::AlignHCenter|Qt::AlignBottom, 
		Qt::white
	);
	//....nochmehrkram
	mainwin(show);
	return app.exec();
}
Das ganze kompiliert ohne Warnings, zeigt Splash, öffnet myMainWindow, so weit so gut, ABER ich kann den Font der Textmessage nicht ändern.
Meine Frage ist warum? QSplashScreen erbt recht eindeutig QWidget, setFont() müsste demnach gehen.

Ich habe noch ein wenig selbst nachgeforscht und probiert:
app.setFont(QFont(...)) -> geht, aber dann ist alles in Arial 12, auch im myMainWindow
app.setFont(QFont(...), "QSplashScreen") -> geht nicht

Was tun? Außer alten Font merken und dann nach dem Splash neu setzen fällt mir nix mehr ein, das ist aber auch nicht "save and normal".

Danke vorab, Edu

Verfasst: 17. März 2006 21:19
von ChMaster
servus,

Code: Alles auswählen

QFont("Helvetica", 12, QFont::Bold)
das wird eher hin hauen, aber keine garantie :roll:

Code: Alles auswählen

//..............
QFont fnt("Helvetica");
fnt.setBold( true );
fnt.setPointSize(12);
splash->setFont( fnt ); 

Verfasst: 19. März 2006 12:42
von xentor
Nö, das isses auch nicht.
habe ich aber auch schon probiert :cry: .

Verfasst: 4. April 2006 20:16
von ChMaster
sorry für die spätte antwort ....

schau dir mal von KDevelop den splashscreen an.
der kann das ... die klasse ist komplett in qt3, aber
es in qt4 umzu wandeln bzw zu protieren ist nicht
schwer .... (die klasse ist abgeleitet vom QSplashScreen)

die klasse findest du im unter ordner src.