예제 #1
0
//! [0] //! [1]
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QSplitter *splitter = new QSplitter;

//! [2] //! [3]
    QDirModel *model = new QDirModel;
//! [0] //! [2] //! [4] //! [5]
    QTreeView *tree = new QTreeView(splitter);
//! [3] //! [6]
    tree->setModel(model);
//! [4] //! [6] //! [7]
    tree->setRootIndex(model->index(QDir::currentPath()));
//! [7]

    QListView *list = new QListView(splitter);
    list->setModel(model);
    list->setRootIndex(model->index(QDir::currentPath()));

//! [5]
    QItemSelectionModel *selection = new QItemSelectionModel(model);
    tree->setSelectionModel(selection);
    list->setSelectionModel(selection);

//! [8]
    splitter->setWindowTitle("Two views onto the same directory model");
    splitter->show();
    return app.exec();
}
예제 #2
0
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QDirModel model;

    QTreeView tree;
    QListView list;
    QTableView table;

    tree.setModel(&model);
    list.setModel(&model);
    table.setModel(&model);

    tree.setSelectionMode(QAbstractItemView::MultiSelection);
    list.setSelectionModel(tree.selectionModel());
    table.setSelectionModel(tree.selectionModel());

    QObject::connect(&tree,SIGNAL(doubleClicked(QModelIndex)),&list,SLOT(setRootIndex(QModelIndex)));
    QObject::connect(&tree,SIGNAL(doubleClicked(QModelIndex)),&table,SLOT(setRootIndex(QModelIndex)));

    QSplitter *splitter = new QSplitter;
    splitter->addWidget(&tree);
    splitter->addWidget(&list);
    splitter->addWidget(&table);
    splitter->setWindowTitle(QObject::tr("Model/View"));
    splitter->show();
    
    return a.exec();
}
예제 #3
0
int main(int argc, char** argv)
{
  QApplication application(argc,argv);

  // Create Splitters
  QSplitter *hSplit  = new QSplitter(Qt::Vertical);
  QSplitter *vSplit1 = new QSplitter(hSplit);
  QSplitter *vSplit2 = new QSplitter(hSplit);

  // Create the scene
  Scene* s = new Scene();

  // Instantiate the viewers.
  Viewer side  (s,0,vSplit1);
  Viewer top   (s,1,vSplit1, &side);
  Viewer front (s,2,vSplit2, &side);
  Viewer persp (s,3,vSplit2, &side);


  hSplit->setWindowTitle("multiView");

  // Set main QSplitter as the main widget.
  hSplit->show();

  return application.exec();
}
예제 #4
0
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QFont font("ZYSong18030",12);
    a.setFont(font);
    //主分割窗口
    QSplitter *splitterMain =new QSplitter(Qt::Horizontal,0);
    QTextEdit *textLeft =new QTextEdit(QObject::tr("Left Widget"),splitterMain);
    textLeft->setAlignment(Qt::AlignCenter);
    //右部分割窗口
    QSplitter *splitterRight =new QSplitter(Qt::Vertical,splitterMain);
    splitterRight->setOpaqueResize(false);
    QTextEdit *textUp =new QTextEdit(QObject::tr("Top Widget"),splitterRight);
    textUp->setAlignment(Qt::AlignCenter);
    QTextEdit *textBottom =new QTextEdit(QObject::tr("Bottom Widget"),splitterRight);
    textBottom->setAlignment(Qt::AlignCenter);
    splitterMain->setStretchFactor(1,1);
    splitterMain->setWindowTitle(QObject::tr("Splitter"));
    splitterMain->show();

    //MainWindow w;
    //w.show();
    
    return a.exec();
}
예제 #5
0
void KateViewManager::splitViewSpace( KateViewSpace* vs, // = 0
    Qt::Orientation o )// = Qt::Horizontal
{
  // emergency: fallback to activeViewSpace, and if still invalid, abort
  if (!vs) vs = activeViewSpace();
  if (!vs) return;

  // get current splitter, and abort if null
  QSplitter *currentSplitter = qobject_cast<QSplitter*>(vs->parentWidget());
  if (!currentSplitter) return;

  // index where to insert new splitter/viewspace
  const int index = currentSplitter->indexOf( vs );

  // create new viewspace
  KateViewSpace* vsNew = new KateViewSpace( this );

  // only 1 children -> we are the root container. So simply set the orientation
  // and add the new view space, then correct the sizes to 50%:50%
  if (currentSplitter->count() == 1)
  {
    if( currentSplitter->orientation() != o )
      currentSplitter->setOrientation( o );
    QList<int> sizes = currentSplitter->sizes();
    sizes << (sizes.first() - currentSplitter->handleWidth() ) / 2;
    sizes[0] = sizes[1];
    currentSplitter->insertWidget( index, vsNew );
    currentSplitter->setSizes( sizes );
  }
  else
  {
    // create a new QSplitter and replace vs with the splitter. vs and newVS are
    // the new children of the new QSplitter
    QSplitter* newContainer = new QSplitter( o );
    newContainer->setOpaqueResize( KGlobalSettings::opaqueResize() );
    QList<int> currentSizes = currentSplitter->sizes();

    newContainer->addWidget( vs );
    newContainer->addWidget( vsNew );
    currentSplitter->insertWidget( index, newContainer );
    newContainer->show();

    // fix sizes of children of old and new splitter
    currentSplitter->setSizes( currentSizes );
    QList<int> newSizes = newContainer->sizes();
    newSizes[0] = (newSizes[0] + newSizes[1] - newContainer->handleWidth()) / 2;
    newSizes[1] = newSizes[0];
    newContainer->setSizes( newSizes );
  }

  m_viewSpaceList.append( vsNew );
  activeViewSpace()->setActive( false );
  vsNew->setActive( true, true );
  vsNew->show();

  createView ((KTextEditor::Document*)activeView()->document());

  updateViewSpaceActions ();
}
예제 #6
0
파일: main.cpp 프로젝트: GLDsuh-a/qt-1
int main( int argc, char **argv )
{
    QApplication app( argc, argv );

    QTreeView *tree = new QTreeView();
    QListView *list = new QListView();
    QTableView *table = new QTableView();

    QSplitter splitter;
    splitter.addWidget(tree);
    splitter.addWidget(list);
    splitter.addWidget(table);

    QStandardItemModel model( 5, 2 );

    for( int r=0; r<5; r++ )
    {
        for( int c=0; c<2; c++)
        {
            QStandardItem *item = new QStandardItem(QString("Row:%0, Column:%1").arg(r).arg(c));

            if(c == 0)
            {
                for(int i=0; i<3; i++)
                {
                    QStandardItem *child = new QStandardItem(QString("Item %0").arg(i));
                    child->setEditable(false);
                    item->appendRow(child);
                }
            }

            model.setItem(r, c, item);
        }
    }

    model.setHorizontalHeaderItem(0, new QStandardItem("Foo"));
    model.setHorizontalHeaderItem(1, new QStandardItem("Bar-Baz"));

    tree->setModel(&model);
    list->setModel(&model);
    table->setModel(&model);

    list->setSelectionModel(tree->selectionModel());
    table->setSelectionModel(tree->selectionModel());

    table->setSelectionBehavior(QAbstractItemView::SelectRows);
    table->setSelectionMode(QAbstractItemView::SingleSelection);

    splitter.show();

    MainWindow w;
    w.show();

    return app.exec();
}
예제 #7
0
void Test_TreeView_MVC()
{
	//mvc data
	TA_Base_App::Node* pNodeRoot = NULL;
	TA_Base_App::Node* pNodeRootRoot = NULL;
	TA_Base_App::Node* pNodeOrExpression = NULL;
	TA_Base_App::Node* pNodeAndExpression = NULL;
	TA_Base_App::Node* pNodeNotExpression = NULL;
	TA_Base_App::Node* pNodeOperator = NULL;

	pNodeRoot = new TA_Base_App::Node(TA_Base_App::NodeData::Root, "root");
	pNodeRootRoot = new TA_Base_App::Node(TA_Base_App::NodeData::Root, "rootroot");
	pNodeOrExpression = new TA_Base_App::Node(TA_Base_App::NodeData::OrExpression, "A");
	pNodeAndExpression = new TA_Base_App::Node(TA_Base_App::NodeData::AndExpression, "A_A");
	pNodeNotExpression = new TA_Base_App::Node(TA_Base_App::NodeData::NotExpression, "A_A_A");
	pNodeOperator = new TA_Base_App::Node(TA_Base_App::NodeData::Operator, "A_A_A_A");


	pNodeRoot->m_pParentNode = NULL;
	pNodeRoot->m_pChildrenNodeLst.push_back(pNodeRootRoot);

	pNodeRootRoot->m_pParentNode = pNodeRoot;
	pNodeRootRoot->m_pChildrenNodeLst.push_back(pNodeOrExpression);

	pNodeOrExpression->m_pParentNode = pNodeRootRoot;
	pNodeOrExpression->m_pChildrenNodeLst.push_back(pNodeAndExpression);

	pNodeAndExpression->m_pParentNode = pNodeOrExpression;
	pNodeAndExpression->m_pChildrenNodeLst.push_back(pNodeNotExpression);

	pNodeNotExpression->m_pParentNode = pNodeAndExpression;
	pNodeNotExpression->m_pChildrenNodeLst.push_back(pNodeOperator);

	pNodeOperator->m_pParentNode = pNodeNotExpression;
	pNodeOperator->m_pChildrenNodeLst.clear();

	//model
	TA_Base_App::BooleanModel* booleanModel = new TA_Base_App::BooleanModel();
	booleanModel->setRootNode(pNodeRoot);
	pNodeRoot = NULL;


	//mvc view
	QSplitter* splitter = new QSplitter();//two widget
	QTreeView* treeViewTmp = new QTreeView(splitter);//

	//mvc
	treeViewTmp->setModel((QAbstractItemModel *)booleanModel);
	//treeViewTmp->setAlternatingRowColors(true);
	treeViewTmp->setRootIndex(booleanModel->index(0, 0, QModelIndex()));
	splitter->setWindowTitle("mvc tree view test");
	splitter->show();

}
예제 #8
0
int main(int argc, char** argv)
{
  // Read command lines arguments.
  QApplication application(argc,argv);

  // Create Splitters
  QSplitter *hSplit  = new QSplitter(Qt::Horizontal);
  QSplitter *vSplit1 = new QSplitter(Qt::Vertical,hSplit);
  QSplitter *vSplit2 = new QSplitter(Qt::Vertical,vSplit1);

  hSplit->resize(1280,720);

  DataLive::tp_shared_ptr _pData( new DataLive() );

  // Instantiate the viewers.
  Viewer global_view(string("global_view"), _pData, vSplit1, NULL);
  Viewer rgb_view(string("rgb_view"), _pData, vSplit1, &global_view);
  Viewer camera_view(string("camera_view"), _pData, vSplit1, &global_view);
  Viewer depth_view (string("depth_view"), _pData, vSplit1, &global_view);

  hSplit->addWidget(&global_view);
  hSplit->addWidget(vSplit1);
  hSplit->setStretchFactor(0, 3);
  hSplit->setStretchFactor(1, 1);
  vSplit1->addWidget(&rgb_view);
  vSplit1->addWidget(vSplit2);
  vSplit2->addWidget(&depth_view);
  vSplit2->addWidget(&camera_view);

#if QT_VERSION < 0x040000
  // Set the viewer as the application main widget.
  application.setMainWidget(&viewer);
#else
  hSplit->setWindowTitle("Kinect Multi-view");
#endif

  try{
	  // Make the viewer window visible on screen.
	  hSplit->show();
	  // Run main loop.
	  return application.exec();
  }
  catch ( btl::utility::CError& e )  {
	  if ( std::string const* mi = boost::get_error_info< btl::utility::CErrorInfo > ( e ) ) {
		  std::cerr << "Error Info: " << *mi << std::endl;
	  }
  }
  catch ( std::runtime_error& e ){
	  PRINTSTR( e.what() );
  }
}
예제 #9
0
파일: main.cpp 프로젝트: CodeDJ/qt5-hidpi
int main(int argc, char **argv)
{
    QApplication app(argc, argv);

    QSplitter splitter;

    splitter.addWidget(new StaticWidget());
    splitter.addWidget(new StaticWidget());

    splitter.resize(600, 400);
    splitter.show();

    return app.exec();
}
예제 #10
0
파일: main.cpp 프로젝트: maxxant/qt
int main(int argc, char *argv[])
{
    Q_INIT_RESOURCE(interview);

    QApplication app(argc, argv);
    QSplitter page;

    QAbstractItemModel *data = new Model(1000, 10, &page);
    QItemSelectionModel *selections = new QItemSelectionModel(data);

    QTableView *table = new QTableView;
    table->setModel(data);
    table->setSelectionModel(selections);
    table->horizontalHeader()->setMovable(true);
    table->verticalHeader()->setMovable(true);
    // Set StaticContents to enable minimal repaints on resizes.
    table->viewport()->setAttribute(Qt::WA_StaticContents);
    page.addWidget(table);

    QTreeView *tree = new QTreeView;
    tree->setModel(data);
    tree->setSelectionModel(selections);
    tree->setUniformRowHeights(true);
    tree->header()->setStretchLastSection(false);
    tree->viewport()->setAttribute(Qt::WA_StaticContents);
    // Disable the focus rect to get minimal repaints when scrolling on Mac.
    tree->setAttribute(Qt::WA_MacShowFocusRect, false);
    page.addWidget(tree);

    QListView *list = new QListView;
    list->setModel(data);
    list->setSelectionModel(selections);
    list->setViewMode(QListView::IconMode);
    list->setSelectionMode(QAbstractItemView::ExtendedSelection);
    list->setAlternatingRowColors(false);
    list->viewport()->setAttribute(Qt::WA_StaticContents);
    list->setAttribute(Qt::WA_MacShowFocusRect, false);
    page.addWidget(list);

    page.setWindowIcon(QPixmap(":/images/interview.png"));
    page.setWindowTitle("Interview");
    page.show();

    return app.exec();
}
예제 #11
0
void Test_FileSystem_MVC()
{
	QSplitter* splitter = new QSplitter;//two widget
	QFileSystemModel* model = new QFileSystemModel;
	QTreeView* tree = new QTreeView(splitter);//left tree view
	QListView* list = new QListView(splitter);//right list view

	splitter->setWindowTitle("Two vies onto the same file system model");

	model->setRootPath(QDir::currentPath());
	tree->setModel(model);//set model for view
	tree->setRootIndex(model->index(QDir::currentPath()));

	list->setModel(model);
	list->setRootIndex(model->index(QDir::currentPath()));

	list->setSelectionModel(tree->selectionModel());
	splitter->show();

}
예제 #12
0
int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QSplitter splitter;

    QTreeView *tree = new QTreeView(&splitter);
    QListView *list = new QListView(&splitter);

    QFileSystemModel *model = new QFileSystemModel(&app);
    model->setRootPath(QDir::root().path());

    tree->setModel(model);
    list->setModel(model);

    list->setRootIndex(model->index("."));

    splitter.show();

    return app.exec();
}
예제 #13
0
파일: TestUI.cpp 프로젝트: mrobinson/pecera
int main(int argc, char *argv[])
{
    KAboutData aboutData(
        "tutorial1",
         0,
         ki18n("Tutorial 1"),
         "1.0",
         ki18n("Displays a KMessageBox popup"),
         KAboutData::License_GPL,
         ki18n("(c) 2007"),
         ki18n("Some text..."),
         "http://tutorial.com/",
         "*****@*****.**");
    KCmdLineArgs::init(argc, argv, &aboutData);
    KApplication app;

    QSplitter* splitter = new QSplitter();
    QDirModel* model = new QDirModel;
    QTreeView* tree = new QTreeView(splitter);
    tree->setModel(model);
    tree->resize(100, 800);

    QFrame* frame = new QFrame(splitter);
    QBoxLayout* boxLayout = new QVBoxLayout(frame);
    QWidget* searchBar = new Pecera::SearchBar();
    QWidget* terminal = createTerminalWidget(frame);

    boxLayout->addWidget(searchBar);
    boxLayout->addWidget(terminal);
    frame->resize(600, 500);
    //terminal->show();

    splitter->resize(700, 500);
    splitter->show();
    return app.exec();
}
예제 #14
0
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

      QDirModel mainModel;
      QTreeView  *treeView     = new QTreeView;
      QTableView *tableView    = new QTableView;
      QSplitter  *mainSplitter = new QSplitter;

        treeView->setModel(&mainModel);
        tableView->setModel(&mainModel);

      QObject::connect(treeView,SIGNAL(clicked(QModelIndex)),tableView,SLOT(setRootIndex(QModelIndex)));
      QObject::connect(tableView,SIGNAL(activated(QModelIndex)),treeView,SLOT(setCurrentIndex(QModelIndex)));
      QObject::connect(tableView,SIGNAL(activated(QModelIndex)),tableView,SLOT(setRootIndex(QModelIndex)));


        mainSplitter->addWidget(treeView);
        mainSplitter->addWidget(tableView);
        mainSplitter->setGeometry(430,340,400,400);
       mainSplitter->show();

    return a.exec();
}
예제 #15
0
파일: main.cpp 프로젝트: marvinfy/Trainings
int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	// cria um objeto "splitter" para compartilhar widgets:    
	QSplitter *splitter = new QSplitter(Qt::Horizontal); // horizontal e o default...

	// cria um "model" usando o "QDirModel"
	QDirModel *model = new QDirModel(&app); // será deletado
												// na destrutora de QApplication (QObject)
//	model->setFilter(QDir::Dirs  | QDir::Files | QDir::NoDotAndDotDot);
//	model->setNameFilters(QStringList() << "cursoQt");

	// Neste exemplo,
	// O "model" será configurado para pegar dados 
	// a partir de determinado(s) drive(s) ou diretório(s).
	// E serão criadas três "views" (uma "tree", uma "table", e uma "list" )
	// relacionadas ao mesmo "model";
	// Cada "view" exibe os dados de uma determinada maneira;

	// 1- ==== a primeira "view" é uma "tree":
	QTreeView *tree = new QTreeView(splitter);
	tree->setModel(model);
	
	// O DirModel já oferece um "RootIndex" a partir do qual
	// cada "view" exibe drives, diretórios e arquivos abaixo dele.
	// No Windows o "RootIndex" default exibirá
	// a relacão de todos os drives; 
	// para outros Sistemas apenas o root ('/').

	// Mas podemos alterar o "RootIndex" de cada view.
	
	// Um exemplo: partindo do diretório atual:
	//    tree->setRootIndex(model->index(QDir::currentPath()));
		 #ifdef Q_OS_WIN
			 QString rootNdx("C:/cursoQt");
		 #else
			 QString rootNdx("/home/user_name/cursoQt");
		#endif
	
	//	tree->setRootIndex(model->index(rootNdx));

	// MAS, temos a função que develve o root do SO:
	// outro exemplo: partindo do diretorio "root" ( "/" ou "C:/"):
	//    tree->setRootIndex(model->index(QDir::rootPath()));
	// ou ainda, um diretório específico:
	//    tree->setRootIndex(model->index("/cursoqt"));
	 // tree->setRootIndex(model->index("/cursoqt"));
	/*	
		// outro exemplo: partindo de determinado drive:
		QFileInfoList fiList = QDir::drives();
		foreach( const QFileInfo & fi, fiList )
		{	
			if ( fi.filePath()=="D:/" ) // apenas o drive "D:/"
			{
				tree->setRootIndex(model->index(fi.filePath()));
				break;
			}				
		}		
	*/
	
	// 2- ==== a segunda "view" é uma "table"
	QTableView *table = new QTableView(splitter);

	table->setModel(model);
	//    table->setRootIndex(...); // idem

	// 3- ==== a terceira "view" é uma "list": 
	QListView *list = new QListView(splitter);
	list->setModel(model);
	//list->setRootIndex(model->index(rootNdx)); // idem

	// configura e exibe a "splitter"
	splitter->setWindowTitle("00_dir - 3 'views' usando o mesmo 'model' (diretórios)");
	int width=800;	
	splitter->resize(width,500);	
	
	// largura de cada "view"
	QList< int > cols;
	cols << int(width* 0.45) << int(width*0.45) << int(width*0.1); 
	splitter->setSizes(cols);	
	
	splitter->setChildrenCollapsible(false); // impede que cada banda colapse totalmente
	
	splitter->show();
	int ret  = app.exec();
	delete splitter;  // porque não alocou o splitter na PILHA ????

	return ret;
}