Maus Doppelklick

Alles rund um die Programmierung mit Qt
Antworten
SaLu
Beiträge: 50
Registriert: 18. August 2008 18:06

Maus Doppelklick

Beitrag 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)
Zuletzt geändert von SaLu am 1. September 2008 15:02, insgesamt 2-mal geändert.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag 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;
}

.........................
speack português italiano deutsch english castellà qt
SaLu
Beiträge: 50
Registriert: 18. August 2008 18:06

Beitrag 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.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag 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
.........................
speack português italiano deutsch english castellà qt
Antworten