Seite 1 von 1
Eigenes Window Design?
Verfasst: 24. September 2005 00:24
von Dewie
Hi,
kann man mit QT auch eigene Window Designs einbinden? Ein Beispiel: Die oberste Leiste und die Buttons (minimize, close ....) verändern? Ein sehr schönes Beispiel was ich aus den Fenstern machen möchte wäre Winamp oder Trillian (ähnlich wie ICQ).

Verfasst: 24. September 2005 09:59
von AHUser
Der Rahmen von Fenstern gehört dem WindowManager. Qt kann dem nur Vorschläge unterbreiten, wie er den Fensterrahmen zeichnen soll.
Man kann aber mit Qt::FramelessWindowHint (Qt4) bzw. Qt::WStyle_NoBorder (Qt3) ein rahmenloses Fenster erstellen und dann selbst die Titelleiste und die Ränder erschaffen. Das Verschieben und die Größenänderung per Maus muss man aber auch selbst implementieren.
Verfasst: 24. September 2005 12:15
von Dewie
Ok soweit hab ich das verstanden.
Wie müsste ich dann vorgehen? Example: Ein ganzes Design machen das die Titelleiste und die Ränder enthält und dann als Bild einfügen? Oder gehts besser und anders?
Liebe Grüße
Andi
Verfasst: 24. September 2005 13:33
von Dewie
Ich versuche jetzt schon verzweifelt deinen NoBorder anzuwenden.
Hier mal mein Script.
Code: Alles auswählen
/****************************************************************************
** Form implementation generated from reading ui file 'NoBorder.ui'
**
** Created: Sat Sep 24 13:26:37 2005
** by: The User Interface Compiler ($Id: qt/main.cpp 3.1.2 edited Dec 19 11:45 $)
**
** WARNING! All changes made in this file will be lost!
****************************************************************************/
#include "NoBorder.h"
#include <qvariant.h>
#include <qlayout.h>
#include <qtooltip.h>
#include <qwhatsthis.h>
/*
* Constructs a Form1 as a child of 'parent', with the
* name 'name' and widget flags set to 'f'.
*/
Form1::Form1( QWidget* parent, const char* name, WFlags fl )
: QWidget( parent, name, fl )
{
if ( !name )
setName( "Form1" );
languageChange();
resize( QSize(600, 480).expandedTo(minimumSizeHint()) );
WStyle_NoBorder();
clearWState( WState_Polished );
}
/*
* Destroys the object and frees any allocated resources
*/
Form1::~Form1()
{
// no need to delete child widgets, Qt does it all for us
}
/*
* Sets the strings of the subwidgets using the current
* language.
*/
void Form1::languageChange()
{
setCaption( tr( "Form1" ) );
}
Verfasst: 24. September 2005 20:52
von FlorianBecker
Äh, hast du versucht das in dem generierten Code der UI Datei einzufügen, oder ist das mit dem Designer so erstellt worden? Wusste gar nicht, dass das geht.
Die WFlags sind ein wenig bockig, und du könntest die bereits im Konstruktor übergeben. Am besten du suchst dir die Informationen aus der Dokumentation, denn da stehen auch Beispiele dafür.
Verfasst: 25. September 2005 00:47
von Dewie
Hi ich hab das in dem generierten Code eingegeben! Was ist daran falsch?

Ich suche schon verzweifelt in der Doku... Könntest du mir bitte einen Hinweis geben wie man das mit dem Designer machen kann?
Greetz
Andi
Verfasst: 25. September 2005 15:34
von FlorianBecker
Das geht im Designer selber nicht, sondern musst du machen, beim einbinden der Datei in dein Programm.
Warum das falsch ist?
WARNING! All changes made in this file will be lost!
Naja, alles was du da änderst geht eh wieder verloren, wenn du Änderungen in der UI Datei machst. Wenn du Änderungen in der UI unbedingt machen willst (warum auch immer), kannst das auch gleich HardCoden.
Verfasst: 25. September 2005 18:46
von Dewie
Versteh den Sinn von QT nicht. Anscheinend kann man damit 3/4 der Möglichkeiten was es gibt mit dem Designer selbst nicht nutzen. Für was gibts dann nen Designer wenn mans zum Schluss selbst Coden muss.

Verfasst: 25. September 2005 19:13
von klogg
Moment...
Den Designer sollst du nutzen,
um bequem ein paar Buttons zusammenzuklicken.
Danach sollst du z.B. selbst einen QDialog schreiben,
die UI (vom Designer) einbinden
und dann programmierst du den restlichen Code dazu.
Eigene Slots, Signals oder eben deinen eignenen Look.
So brauchst du das ganze Layouten nicht selbst machen...
HENNING
Verfasst: 25. September 2005 19:52
von Dewie
Ach so ist das. =)
Verfasst: 28. Juni 2007 15:47
von CaptnChaos
guck mal in dem "Projekt" Thema, da ist eine Klasse die du für dein Vorhaben gut gebrauchen kannst.
Carpe Diem
Markus
Verfasst: 28. Juni 2007 15:49
von FlorianBecker
Was ist denn das Projekt Thema? Bzw. wo soll man das denn finden können?
Verfasst: 28. Juni 2007 15:51
von CaptnChaos
Verfasst: 28. Juni 2007 15:56
von FlorianBecker
Ok, Missverständnis zwischen Thema und Themes!?
http://qtforum.de/forum/viewtopic.php?t=4530
Verfasst: 28. Juni 2007 16:00
von CaptnChaos
ho
hm, vielleicht hätte ich den Thread anders nennen sollen???
Naja, ich denke jeder weiss was mit "Themes" gemeint ist und das Wort "Thema" werde ich auch nicht mehr im zusammenhang mit "Themes" benutzen...
Erspart unnötige Beiträge... gell?