Qt ошибок не показывает, но программа неожиданно завершается
Вот функция mainWindow в ней cначала создаю verticalLayout после чего в функции set(находится в классе dynamicQVBoxLayout) пытаюсь установить размер этого layout через resize() и передвинуть через move().
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
dynamicQVBoxLayout* VboxLayout = new dynamicQVBoxLayout(this);
VboxLayout->set(parent);
}
dynamicqvboxlayout.h
#ifndef DYNAMICQVBOXLAYOUT_H
#define DYNAMICQVBOXLAYOUT_H
#include <QHBoxLayout>
#include <QtWidgets>
class dynamicQVBoxLayout : public QHBoxLayout
{
Q_OBJECT;
public:
explicit dynamicQVBoxLayout(QWidget * parent = 0);
void set(QWidget *parent);
public slots:
private:
};
#endif // DYNAMICQVBOXLAYOUT_H
dynamicqvboxlayout.cpp
#include "dynamicqvboxlayout.h"
#include "QGuiApplication"
#include <QRect>
#include <qscreen.h>
dynamicQVBoxLayout::dynamicQVBoxLayout(QWidget *parent) : QHBoxLayout(parent)
{
}
void dynamicQVBoxLayout::set(QWidget *parent){
auto screens = QGuiApplication::screens();
QRect r = screens[0]->geometry();
int width = r.width()/2;
int height = r.height()-75;
parent->resize(width,height);
parent->move(width/2,0);
}
Проходя через debug останавливается на этой функции
inline void QWidget::resize(int w, int h)
{ resize(QSize(w, h)); }
если оставить только move то на этой
inline void QWidget::move(int ax, int ay)
{ move(QPoint(ax, ay)); }
Можете подсказать как решить проблему.
Источник: Stack Overflow на русском