All pastes #294545 Raw Edit

Miscellany

public text v1 · immutable
#294545 ·published 2006-12-28 16:52 UTC
rendered paste body
#include <iostream>

#include <QApplication>
#include <QMainWindow>

class MyWidget : public QWidget
{
public:
        MyWidget(QWidget *parent) : QWidget(parent), originalParent(NULL), child(this)
        {
                QPalette palette = child.palette();
                palette.setColor(child.backgroundRole(), QColor(255, 0, 0));
                child.setPalette(palette);
                child.setAutoFillBackground(true);
                std::cout << "winId() = " << child.winId() << "\n";
        }
        ~MyWidget() { }

private:
        void mouseDoubleClickEvent(QMouseEvent *)
        {
                if (originalParent == NULL) {
                        std::cout << "parent winId() = " << parentWidget()->winId() << "\n";
                        originalParent = parentWidget();
                        //setParent(window());
                        //show();
                        //window()->showFullScreen();
                        setParent(0);
                        show();
                        showFullScreen();
                } else {
                        std::cout << "parent winId() = " << originalParent->winId() << "\n";
                        showNormal();
                        setParent(originalParent);
                        originalParent = NULL;
                        show();
                        //window()->showNormal();
                }
                std::cout << "winId() = " << child.winId() << "\n";
        }

        QWidget *originalParent;
        QWidget child;
};

int main(int argc, char *argv[])
{
        QApplication app(argc, argv);

        QMainWindow window;
        new MyWidget(new QWidget(&window));

        window.show();

        return app.exec();
}