From bd0f3345a938b35ce6a12f6150373b0955b8dd12 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 10 Jul 2011 15:24:15 -0500 Subject: Add Qt3 development HEAD version --- examples/splitter/splitter.cpp | 99 ++++++++++++++++++++++++++++++++++++++++++ examples/splitter/splitter.doc | 17 ++++++++ examples/splitter/splitter.pro | 10 +++++ 3 files changed, 126 insertions(+) create mode 100644 examples/splitter/splitter.cpp create mode 100644 examples/splitter/splitter.doc create mode 100644 examples/splitter/splitter.pro (limited to 'examples/splitter') diff --git a/examples/splitter/splitter.cpp b/examples/splitter/splitter.cpp new file mode 100644 index 0000000..d07866b --- /dev/null +++ b/examples/splitter/splitter.cpp @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** 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; +} diff --git a/examples/splitter/splitter.doc b/examples/splitter/splitter.doc new file mode 100644 index 0000000..ddee769 --- /dev/null +++ b/examples/splitter/splitter.doc @@ -0,0 +1,17 @@ +/* +*/ +/*! \page splitter-example.html + + \ingroup examples + \title Splitter + + This example shows how to use splitters. With their help users can + decide for themselves how much space each child item should get. + +
+ + Implementation: + + \include splitter/splitter.cpp +*/ + diff --git a/examples/splitter/splitter.pro b/examples/splitter/splitter.pro new file mode 100644 index 0000000..439d8fe --- /dev/null +++ b/examples/splitter/splitter.pro @@ -0,0 +1,10 @@ +TEMPLATE = app +TARGET = splitter + +CONFIG += qt warn_on release +DEPENDPATH = ../../include + +REQUIRES = medium-config + +HEADERS = +SOURCES = splitter.cpp -- cgit v1.2.1