MainWindow und Widgets

Alles rund um die Programmierung mit Qt
Antworten
moviemax
Beiträge: 56
Registriert: 10. März 2008 09:49
Wohnort: München

MainWindow und Widgets

Beitrag von moviemax »

Hallo zusammen
folgendes Scenario:
Ich erstelle aus QMainWindows herraus eine QWidget.

Das was mich nervt ist nun (unter WinXP,
es wird sicherlich generell so sein ), dass die beiden Fenster unabhängig voneinander sind
1. In der Taskleiste werden erscheint dann zweimal das Programmsymbol
und
2. Mit <Alt>+<Tab>kann man zwischen den Anwendungen springen und durch das Hauptfenster und dem Widget blättern.

Es soll aber in der Taskleister nur das Hauptfenster angezeigt werden als auch mit <Alt>+<Tab>nur zwischen dem Hautpfenster und anderen Programmen gewechselt werden.

in MainWindow rufe ich das fenster so auf

Code: Alles auswählen

 connect(wfDialog, SIGNAL( finished(int) ), this, SLOT( openWfStatus(int) ) );
.. 


WfStatusWindow *wfWindow = new WfStatusWindow(wfid, this , Qt::Window );
    wfWindow->show();

.....

class WfStatusWindow : public QWidget, protected Ui_WfStatusWindow
{
	Q_OBJECT
public:
    WfStatusWindow(int wfId, QWidget* parent = 0, Qt::WFlags flags = 0);	
    QSize sizeHint() const;


gruß moviemax
Zuletzt geändert von moviemax am 27. Juni 2008 14:12, insgesamt 2-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

WindowFlags korrekt setzen würde ich mal sagen - z.B. Qt::Tool oder evtl. Qt::SubWindow
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
moviemax
Beiträge: 56
Registriert: 10. März 2008 09:49
Wohnort: München

Beitrag von moviemax »

:oops: äh .. da muss mich for lauter Widgets
das Flag übersehen haben. ich hatte schon fast alles
durchprobiert .

mercy

kann man noch einfach es hinbekommen das das Widget nicht aus
dem MainWindows Bereich nicht herrausgeschoben werden kann.

moviemax
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Vielleicht mit einem QDockWidget
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
moviemax
Beiträge: 56
Registriert: 10. März 2008 09:49
Wohnort: München

Beitrag von moviemax »

nein da habe ich mich schon ziemlich mit abgequält,
es darf gar nicht andocken.

eigentlich soll es so sein wie beim (q)designer das zu
konstruierende Widget:
1. man kann es nur minimieren
2. man kann es nicht aus dem MainWindow Bereich schieben.
3. es soll nicht docken.

ich habe hatte aber keine Zeit den source für genau dieses
fenster im designer zu finden.
moviemax
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Trotzdem QDockWidget mit Qt::NoDockWidgetArea
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

eigentlich soll es so sein wie beim (q)designer das zu
konstruierende Widget:
1. man kann es nur minimieren
2. man kann es nicht aus dem MainWindow Bereich schieben.
3. es soll nicht docken.
Klingt wie MDI, oder ???
http://de.wikipedia.org/wiki/Multiple_D ... _Interface
Zumindest wenn du den QDesigner im MDI modus hattest
Edit->User Interface Mode->Docked Windows

Also das Fenster fuer die Forms iss da nen typisches MDI Child !
Die Werkzeugleisten natuerlich Dockwidgets :-)

Wie man MDI fenster baut, siehe QWorkspace ....

Ciao ...
moviemax
Beiträge: 56
Registriert: 10. März 2008 09:49
Wohnort: München

Beitrag von moviemax »

Wie gesagt, die DockWidget haben ich mich schon
zum wahnsin getrieben. Qt::NoDockWidgetArea
hatte ich auch schon probiert. wenn es nicht dockt kann man es
trotzdem rausschieben. Siehe qtdemo -> mainwindows -> Dock Widgets

Ok MDI sieht ganz gut aus qtdemo -> mainwindows -> MDI

ich hoffe da geht dann trotzdem das Qt::subwindows flag.

Zur Erklärung: es werden StatusFenster für laufende Jobs angezeigt.
Die sollten immer nebeneinander auf dem MainWindows sein, oder
minimiert .



merci
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

MDI macht nur wirklich sinn, wenn du mehere unabhaengige Views haben willst. die du getrennt oeffnen schliessen etc willst.
Die sollten immer nebeneinander auf dem MainWindows sein, oder
minimiert .
ohne oeffnen und schliessen macht das irgendwie wenig sinn
Kenne keine app, die mir verschiebbare Fensterle anbeitet, die ich nur minimieren kann, aber ned verstecken ...

Das waer eher wiederum das einsatztgebiet fuer Toolbars (Dockwidgets)

Irgendwie bist mit der anforderung mittendrinn ... weiss ned ob das ueberhaupt nen gaengiges fensterkonzept ist und von den windowmanagern unterstuetzt wird ...
Wobei man nen close scho abfangen kann und stattdessen nen minimieren anstossen, aber ob das sinn der fenster sein kann ...

Ciao ...
moviemax
Beiträge: 56
Registriert: 10. März 2008 09:49
Wohnort: München

Beitrag von moviemax »

schließen habe ich schon abgefangen,
weil man sonst den JobThread nicht mehr beenden könnte.
So sieht das widget aus: liste sind Datei (job)-Namen.
[Start] ist natürlich Start/Stop und close geht nur wenn
der Stop aktiviert wurde und der Thread sich tatsächlich
beendet hat.

Code: Alles auswählen

+----------------------+
+----------------------+
 | -----------             |
 | |list        | [start ]  |
 | |            | [close]  | 
 | |            |             |
 | |            |             |
 | -----------              |
 | -----------              |
 | | current |             |
 | -----------              |
+----------------------+
Irgendwie bist mit der anforderung mittendrinn ... weiss ned ob das ueberhaupt nen gaengiges fensterkonzept ist und von den windowmanagern unterstuetzt wird ...
Wobei man nen close scho abfangen kann und stattdessen nen minimieren anstossen, aber ob das sinn der fenster sein kann ...
Nein das Programm läuft eingeltich schon, nur schönheitskorrekturen.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Fensterverhalten ist Schoenheit ^^

warum haengst du den Thread ans Fenster ?
warum kein Jobmanager, und das widget qasi nur als view dazu ...
so das das schliessen und (wieder)oeffnen des fensters keinerlei einfluss auf den Job hat, sondern nur ne einblendbare Steuerung darstellt ?

Was passiert eigentlich, wenn dein Thread laueft, und jemand auf das boese x am mainfenster drueckt ? Bzw. was sollte da passieren ...

ciao ...
moviemax
Beiträge: 56
Registriert: 10. März 2008 09:49
Wohnort: München

Beitrag von moviemax »

Äh kann bei den MID windows prinzipiell immer nur ein
Widget aktiv sein oder auch mehrere ?

moviemax
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Es kann immer nur ein Widget aktiv sein, oder kennst du eine Anwendung bei der mehrere Aktiv sind?
Antworten