Hallo,
kann mir Jemand bei folgendem Problem behilflich sein:
Ich arbeite mit tabbed Dockwidgets und es funktioniert soweit auch wunderbar. Alles, was ich noch will, ist programmatisch das erste hinzugefügte Tab zu aktivieren.
Per default wird momentan immer das zuletzt hinzugefügte aktiviert.
Beispiel:
QDockWidget *tab1 = new QDockWidget();
QMainwindow::addWidget(tab1, "ERSTES TAB");
QDockwidget *tab2 = new QDockWidget();
QMainwindow::addWidget(tab1, "LETZTES TAB");
QMainWindow::tabifyDockWidget(tab1, tab2);
// Jetzt müsste noch sowas wie "tab1->activateWindow();" kommen, funzt aber so nicht.
Allgemeiner Tip:
Das vorherige "addWidget(...);" verhindert übrigens, dass die DockWidgets übereinander gezeichnet werden.
Gruß
Nils
QDockWidget (Tabify)
Das show() könnte man im showEvent oder event von QMainwindow aufrufen.
Beispiel
In meiner Anwendung funktioniert es auf diese art und weise...
Beispiel
Code: Alles auswählen
bool CMainWindow::event(QEvent* apEvent)
{
switch (apEvent->type())
{
case QEvent::Show:
if (mPolished == false) // globaler Merker damit es nur einmal ausgeführt wird.
{
mPolished = true;
tab1->close();
tab2->close();
tab1->show();
tab2->show();
}
break;
default:
// weiteres...
}
return QMainWindow::event(apEvent);
}