我修改了我的程序,如下:
//main
#include<QApplication>
#include"treeso.h"
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
treeso *a;
a=new treeso();
app.setActiveWindow(a);
a->show();
return app.exec();
}
//cpp
#include "treeso.h"
#include<QTreeView>
#include<QListView>
#include<QTableView>
#include<QSplitter>
#include<QStandardItemModel>
#include<QStandardItem>
#include<iostream>
using namespace std;
treeso::treeso()
{
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:%1, Column:%2").arg(r).arg(c) );
if( c == 0 )
for( int i=0; i<3; i++ )
item->appendRow( new QStandardItem( QString("Item %1").arg(i) ) );
model.setItem(r, c, item);
}
tree->setModel( &model );
list->setModel( &model );
table->setModel( &model );
cout<<"show it"<<endl;
list->setSelectionModel( tree->selectionModel() );
table->setSelectionModel( tree->selectionModel() );
tree->show();
list->show();
table->show();
}
//h
#ifndef TREESO_H
#define TREESO_H
#include<QWidget>
class treeso:public QWidget
{
public:
treeso();
};
#endif // TREESO_H
可以运行,出现一个Application,但是没有出现list,table,tree,不知是怎么回事?