一、在QMainWindow的对象中显示多个widget。
splitter->addWidget(graphicsView);
splitter->addWidget(tableView);
this->setCentralWidget(splitter);
两个widget所占的比例等可用splitter的一些方法调节,这里就不细说。
二、如何禁止QSplitter的拖动(移动)
按照1中方法显示多窗口后,splitter是可以拖动的,各窗口所占比例也会随着拖动变化。这是因为splitter有个handle,它是有自身的鼠标事件的。如果用splitter->setEnbled(false);方法,将导致里面所有的widget都不能接受鼠标事件,那如何保留widget的鼠标事件,又禁止splitter的拖动呢?我有一下方法:
for(int i = 0; i<splitter->count();i++)
{
QSplitterHandle *handl = splitter->handle(i);
handl->setEnabled(false);
}
这样只将handle的鼠标事件禁止,就只禁止了splitter的拖动。