Свернуть окно MainWindow через вызов js кода в QtWebEngine в C++
Есть проблема. Когда я хочу вызвать js-код html-кнопки, который вызывает С++ функцию, все проходит успешно - кроме одного, я никак не могу нормально взаимодействовать с MainWindow (от QMainWindow), мои попытки вызывать сворачивание окна или растягивание ни к чему не приводят. В чем может быть проблема? Код исправно выполняется, н-р спокойно пишет в qDebug что функция была вызывана.
Если использовать просто pushButton от qt, то все работает исправно.(сделал в качестве проверки)
UP:
webconnect.cpp
webconnect::minimize_Window()
{
MainWindow w;
w.showMinimized(); //не работает
}
webconnect.h
#ifndef webconnect_h
#define webconnect_h
#include <QObject>
class webconnect : public QObject
{
Q_OBJECT
public:
Q_INVOKABLE void minimize_Window();
};
#endif
main.js
var webChannel = new QWebChannel(qt.webChannelTransport, function(channel) {
});
function minimize_Window(){
webChannel.objects.jscpp.minimize_Window();
}
main.cpp
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow MainW;
MainW.setWindowFlags(Qt::FramelessWindowHint | Qt::CustomizeWindowHint);
MainW.show();
return app.exec();
}
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
webobj = new webconnect();
channel = new QWebChannel(this);
channel->registerObject("jscpp", webobj);
ui->webEngineView->page()->setWebChannel(channel);
ui->webEngineView->page()->load(QUrl(QString("qrc:/index.html")));
}
MainWindow::~MainWindow()
{
delete ui;
}
index.html
...
<i class="far fa-minus-square" onclick="minimize_Window()"></i>
...