Seite 1 von 1

Maus Doppelklick

Verfasst: 1. September 2008 12:33
von SaLu
Hallo ich habe folgendes Problem. Ich hab ein QWidget und in einer bestimmten Methode wird wieder ein QWidget erstellt also 2 Fenster. Könnte natürlich auch ein QDialog sein wenn es unschön ist. Meine frage ist nun wie ich es machen kann das ich von dem 2ten Qwidget das keine eigene klasse hat ein event "mouseDoubleClickEvent(QMouseEvent* event)" anwenden kann so das das zweite Fenster sich wieder öffnet.

also quasi per doppelklich auf das andere fenstern. eigenes fenster schließt und anderes wird wieder normal dargestellt. (vorher minimized)

Verfasst: 1. September 2008 14:06
von patrik08
In der laufzeit neue Widget erstellen und loeschen ist nicht optimal
dafuer gibt es QStackedWidget ... das es uns erlaubt auch 100 Widget auf engsten raum zu platieren die man dan mit einer QComboBox umschalten kann..

alles im designer oder auch per hand mit doku

Und sogar alle Widget event abfangen kan mit installEventFilter

Code: Alles auswählen


QList<QToolBar*> toolse; /* oder widged */
toolse << tb_0 << tb_1 << tb_2 << tb_3 << tb_4 << tb_5 << docbar;

    for (int i = 0; i < toolse.size(); ++i) {
         toolse[i]->installEventFilter(this);  
     }
     
     
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
    barevents++;
    
      if (event->type() == QEvent::ContextMenu) {
        /* disable it*/
        return true;
      } 
      if (event->type() == QEvent::HoverMove) {
             QToolBar *nowlive = qobject_cast<QToolBar*>(obj);
             if (nowlive) {
                  /* create unixtime hash */
                 if (nowlive->isEnabled()) {
                     /////////qDebug() << "### menuUpdate  enable -> " << barevents;
                 } else {
                     ///////qDebug() << "### menuUpdate  disable -> " << barevents;
                 }
             }
      }
    return false;
}


Verfasst: 1. September 2008 14:53
von SaLu
perfekt funktioniert soweit nurnoch ein kleines Problem. Hab auf das QStackedWidget ein label draufgelegt. Nun wird dieses label nur mit 8 Buchstaben ca angezeigt. Muss ich zuvor noch ein Qwidget drauflegen oder hängt das dann mit der größe zusammen?

vielen Dank im vorraus.

Verfasst: 1. September 2008 20:05
von patrik08
SaLu hat geschrieben:perfekt funktioniert soweit nurnoch ein kleines Problem. Hab auf das QStackedWidget ein label draufgelegt. Nun wird dieses label nur mit 8 Buchstaben ca angezeigt. Muss ich zuvor noch ein Qwidget drauflegen oder hängt das dann mit der größe zusammen?

vielen Dank im vorraus.
Das sind deine designer creativitaeten...

Ich mache normaler weise ein Widget flach im designer .. wen alles ok ist .... ziehe ich die grid einrahmung zum QStackedWidget ... und lasse los..


Immer mehr lade ich die ui als
QUiLoader

Code: Alles auswählen

QUiLoader loader;
QWidget *formWidget = 0;

     QFile file(ROOT_UIDIR + "calculatorform.ui");
     if (file.open(QFile::ReadOnly) ) {
     formWidget = loader.load(&file, this);
     file.close();

     return formWidget;
     }


so kann ich am kunde nur das ui geben um zu kopieren.. ohne das man alles noch compilieren muss .... wenn aber was dazu komt .. neues feld dann muss man