/**************************************************************************** ** ** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. ** ** This file is part of an example program for Qt. This example ** program may be used, distributed and modified without limitation. ** *****************************************************************************/ #include #include #include #include #include class Test : public QWidget { public: Test(QWidget* parent=0, const char* name=0, int f=0); void paintEvent(QPaintEvent* e); private: }; Test::Test(QWidget* parent, const char* name, int f) : QWidget(parent, name, f) { } void Test::paintEvent(QPaintEvent* e) { QPainter p(this); p.setClipRect(e->rect()); const int d = 1000; //large number int x1 = 0; int x2 = width()-1; int y1 = 0; int y2 = height()-1; int x = (x1+x2)/2; p.drawLine( x, y1, x+d, y1+d ); p.drawLine( x, y1, x-d, y1+d ); p.drawLine( x, y2, x+d, y2-d ); p.drawLine( x, y2, x-d, y2-d ); int y = (y1+y2)/2; p.drawLine( x1, y, x1+d, y+d ); p.drawLine( x1, y, x1+d, y-d ); p.drawLine( x2, y, x2-d, y+d ); p.drawLine( x2, y, x2-d, y-d ); } int main( int argc, char ** argv ) { QApplication a( argc, argv ); QSplitter *s1 = new QSplitter( QSplitter::Vertical, 0 , "main" ); QSplitter *s2 = new QSplitter( QSplitter::Horizontal, s1, "top" ); Test *t1 = new Test( s2, "topLeft" ); t1->setBackgroundColor( Qt::blue.light( 180 ) ); t1->setMinimumSize( 50, 0 ); Test *t2 = new Test( s2, "topRight" ); t2->setBackgroundColor( Qt::green.light( 180 ) ); s2->setResizeMode( t2, QSplitter::KeepSize ); s2->moveToFirst( t2 ); QSplitter *s3 = new QSplitter( QSplitter::Horizontal, s1, "bottom" ); Test *t3 = new Test( s3, "bottomLeft" ); t3->setBackgroundColor( Qt::red ); Test *t4 = new Test( s3, "bottomMiddle" ); t4->setBackgroundColor( Qt::white ); Test *t5 = new Test( s3, "bottomRight" ); t5->setMaximumHeight( 250 ); t5->setMinimumSize( 80, 50 ); t5->setBackgroundColor( Qt::yellow ); #ifdef Q_WS_QWS // Qt/Embedded XOR drawing not yet implemented. s1->setOpaqueResize( TRUE ); #endif s2->setOpaqueResize( TRUE ); s3->setOpaqueResize( TRUE ); a.setMainWidget( s1 ); s1->setCaption("Qt Example - Splitters"); s1->show(); int result = a.exec(); delete s1; return result; }