在UI中更改Widget构造函数



我在为GUI推广QGLWidget时遇到了Qt问题。因为QGLWidget的构造函数是

GLWidget::GLWidget( const QGLFormat& format, QWidget* parent )
: QGLWidget( format, parent ),
  m_vertexBuffer( QGLBuffer::VertexBuffer ) {}

对象应该像这样被实例化

QGLFormat glFormat;
glFormat.setVersion( 3, 3 );
glFormat.setProfile( QGLFormat::CoreProfile );
glFormat.setSampleBuffers( true );
GLWidget w( glFormat, parent );

但是ui_mainwindow。h会自动使用

widget = new GLWidget(centralWidget);

不能修改,因为每次UI重新编译时都会创建新的ui_mainwindow.h。因此,我可能不得不在maindwindow.cpp中说明,GLWidget的实例化方式与标准构造函数不同,但要使用QFormat。知道怎么做吗?

我相信这不能用Qt Designer自动生成的代码来实现。

至少有两种不同的解决方案:

  • 子类QGLWidget设置QGLFormat在它的MyGLWidget(QWidget* parent = 0);构造函数。

  • 手动创建小部件(没有Qt设计器)。

我更喜欢后者,因为我喜欢控制。

相关内容

  • 没有找到相关文章

最新更新