QDockwidgets ohne resize-Mauszeiger ???

Alles rund um die Programmierung mit Qt
Antworten
hilby
Beiträge: 31
Registriert: 31. Mai 2006 16:26

QDockwidgets ohne resize-Mauszeiger ???

Beitrag von hilby »

Ich habe ein verflixtes Problem mit den QDockwidgets....


ich habe mehere QDockWidgets mit fixer Grösse -
die sollen sich nicht skalieren lassen - das funktioniert auch.
nur der Mauszeiger symbolisiert weiter eine skalierbarkeit....

mit setSizeGripEnabled lässt sich das skalieren der unteren rechten Ecke abschalten -
und damit auch der resize-Mauszeiger an den Aussenrändern...
aber an den Rändern der QDockwidgets innerhalb des QMainwindows bleibt das Problem - der lästige resize Mauszeiger erscheint beim darüberfahren....

hat jemand eine Idee ?....ich verzweifele hier noch..:-(

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

Beitrag von upsala »

-> Bugreport
hilby
Beiträge: 31
Registriert: 31. Mai 2006 16:26

Beitrag von hilby »

Lösung gefunden:

Code: Alles auswählen

#include <QtGui>

class myDock : public QDockWidget
{
public: myDock(QWidget *parent) : QDockWidget(parent){}
               QSize sizeHint() const {
                       return QSize(300,200);
               }

};
class MyMainWindow : public QMainWindow
{
public:
       MyMainWindow() : QMainWindow() {}
protected:
       bool event(QEvent *e)
       {
               if (e->type() == QEvent::HoverMove)
                       return true;
               return QMainWindow::event(e);
       }
};

int main(int argc, char **argv)
{
       QApplication app(argc, argv);
       MyMainWindow window;

       myDock *dock1 = new myDock(&window);
       window.addDockWidget(Qt::RightDockWidgetArea, dock1);
       dock1->setFixedSize(300, 200);
       dock1->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
       dock1->setWindowFlags(dock1->windowFlags() |
Qt::MSWindowsFixedSizeDialogHint);
       QLabel *label = new QLabel("This is a label", dock1);
       dock1->setWidget(label);
       QTextEdit *edit = new QTextEdit(&window);
       window.setCentralWidget(edit);
       window.show();

       return app.exec();
}
Antworten