Dies ist die Anordnung, die ich will:Wie ordnen Sie die Elemente im Standardlayout von QMainWindow an?
------------ ------
| | | 2 |
| | | |
| 1 | ------
| | ------
| | | 3 |
------------ ------
Das Problem ist, dass die addwidget
Funktion des Standard-Layouts nicht die Parameter für die Zeilen und Spalten enthält. Ich kann nicht einmal QVBoxLayout
hinzufügen, da der Compiler sagt, dass ein Layout bereits da ist, so dass Sie keine weiteren Layouts hinzufügen können.
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();
}
Beachten Sie, dass Sie wirklich nichts mit dem Layout eines 'QMainWindow' direkt tun sollten. Stattdessen sollten Sie die gewünschte Widget-Hierarchie erstellen und diese an ['QMainWindow :: setCentralWidget'] (http://doc.qt.io/qt-5/qmainwindow.html#setCentralWidget) übergeben. –
@ G.M. Bitte denken Sie über ein kleines Beispiel als Antwort nach. –
@ G.M. Könntest du einen Hinweis auf die Dokumente geben, in denen steht, dass "du wirklich nichts mit dem Layout eines QMainWindow direkt machen solltest"? – SingerOfTheFall