Problem description
The qvtkwidget control is used in QT’s interface. When clicking the close button in the upper right corner of the window, an error is reported: wglmakecurrent failed in makecurrent(), error: the handle is invalid
.
Solution:
By overriding the void closeevent (qcloseevent * event)
function, manually delete all qvtkwidget type controls, and then close the window.
Example
The qvtkwidget type controls in the QT design interface are as follows:
mymainwindow. H
class MyMainWindow : public QMainWindow
{
Q_OBJECT
public:
MyMainWindow(QWidget *parent = Q_NULLPTR);
protected:
void closeEvent(QCloseEvent *event);
private:
Ui::MainWindow ui;
};
mymainwindow.cpp
MyMainWindow::MyMainWindow(QWidget *parent): QMainWindow(parent)
{
ui.setupUi(this);
}
void MyMainWindow::closeEvent(QCloseEvent *event) {
delete ui.qvtkWidget;
delete ui.qvtkWidget_2;
delete ui.qvtkWidget_3;
delete ui.qvtkWidget_4;
event->accept();
}
Postscript
I don’t know whether such hasty delete processing will cause other problems. I hope you can make more corrections.