Eigenes Window Design?

Alles rund um die Programmierung mit Qt
Antworten
Dewie
Beiträge: 14
Registriert: 23. September 2005 14:06

Eigenes Window Design?

Beitrag 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). :-)
AHUser
Beiträge: 27
Registriert: 29. Juni 2005 17:45

Beitrag 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.
Andreas
Dewie
Beiträge: 14
Registriert: 23. September 2005 14:06

Beitrag von Dewie »

Ok soweit hab ich das verstanden. :wink:
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
Dewie
Beiträge: 14
Registriert: 23. September 2005 14:06

Beitrag 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" ) );
}
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag 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.
Dewie
Beiträge: 14
Registriert: 23. September 2005 14:06

Beitrag von Dewie »

Hi ich hab das in dem generierten Code eingegeben! Was ist daran falsch? :roll: 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
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag 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.
Dewie
Beiträge: 14
Registriert: 23. September 2005 14:06

Beitrag 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. :roll:
klogg
Beiträge: 129
Registriert: 5. September 2005 17:00
Wohnort: Hann. Münden

Beitrag 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
Dewie
Beiträge: 14
Registriert: 23. September 2005 14:06

Beitrag von Dewie »

Ach so ist das. =)
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

guck mal in dem "Projekt" Thema, da ist eine Klasse die du für dein Vorhaben gut gebrauchen kannst.

Carpe Diem
Markus
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Was ist denn das Projekt Thema? Bzw. wo soll man das denn finden können?
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Ok, Missverständnis zwischen Thema und Themes!?

http://qtforum.de/forum/viewtopic.php?t=4530
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag 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?
Antworten