16,228
社区成员
发帖
与我相关
我的任务
分享
w.view->setModel(model);//view是主窗口w的一个private成员
w.view->setSelectionMode(QAbstractItemView::ExtendedSelection);//设置每次选中的个数(单个,多个)
w.view->setSelectionBehavior(QAbstractItemView::SelectItems);//设置选中的形式(行,列,单个)
// view->setColumnHidden(0, true);
w.view->verticalHeader()->setVisible(false);//隐藏表头
w.view->resizeColumnsToContents();//列的宽度自适应内容
w.view->setEditTriggers(QAbstractItemView::NoEditTriggers);
QHeaderView *header = w.view->horizontalHeader();
header->setStretchLastSection(true);
int width = w.geometry().width()/2;
int height =w.geometry().height()/2;
w.view->setGeometry(width,height,width,height);//这样控制位置就不能选中里面的item
// w.setCentralWidget(w.view);//如果这样控制view的位置,就可以选中view里面的item.
w.view->show();
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),view(new QTableView(this)),//这样就可以
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//view = new QTableView(this);//这样就不行
}
我在函数体之前初始化view就不能选中,在函数体里面初始化就不行,然后我试了一下这样的代码
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),//view(new QTableView(this)),//这样就可以
ui(new Ui::MainWindow)
{
view = new QTableView(this);//这样就不行
ui->setupUi(this);
}
发现是ui必须在view的初始化之前加载界面...我想请教一下ui加载顺序为什么会造成这种情况?