Qt ошибок не показывает, но программа неожиданно завершается

Рейтинг: 1Ответов: 0Опубликовано: 06.02.2023

Вот функция 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)); }

Можете подсказать как решить проблему.

Ответы

Ответов пока нет.