這是我想要的安排:如何安排QMainWindow默認佈局中的項目?
------------ ------
| | | 2 |
| | | |
| 1 | ------
| | ------
| | | 3 |
------------ ------
的問題是,默認佈局的addwidget
函數不具有行和列的參數。我甚至不能添加任何QVBoxLayout
,因爲編譯器說佈局已經存在,所以您不能添加更多佈局。
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
m_QPushButton_calibration = new QPushButton("Calibrate", this);
connect(m_QPushButton_calibration, SIGNAL (released()),this, SLOT (handleButton()));
QList<QCameraInfo> l_QListQCameraInfo_available_cameras = QCameraInfo::availableCameras();
m_QCameraViewfinder_viewfinder = new QCameraViewfinder(this);
if (l_QListQCameraInfo_available_cameras.length() > 2)
{
m_QCamera_required_camera = new QCamera (l_QListQCameraInfo_available_cameras[1]);
m_QCamera_required_camera->setViewfinder(m_QCameraViewfinder_viewfinder);
m_QCamera_required_camera->start();
}
this->layout()->addWidget(m_QPushButton_calibration);
this->layout()->addWidget(m_QCameraViewfinder_viewfinder);
m_QCameraViewfinder_viewfinder->show();
}
請注意,你真的不應該直接用'QMainWindow'的佈局來做任何事*。相反,您應該創建您需要的窗口小部件層次結構,並將其傳遞給['QMainWindow :: setCentralWidget'](http://doc.qt.io/qt-5/qmainwindow.html#setCentralWidget)。 –
@ G.M。請考慮寫一個小例子作爲答案。 –
@ G.M。你可以參考一下文檔,它說「你真的不應該直接對QMainWindow進行任何佈局」。 – SingerOfTheFall