【问题标题】:Change Widget Constructor in UI在 UI 中更改 Widget 构造函数
【发布时间】:2014-07-01 04:48:52
【问题描述】:

我在为 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 user-interface widget


【解决方案1】:

我相信使用 Qt Designer 自动生成的代码无法实现这一点。

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

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

  • 手动创建小部件(不使用 Qt Designer)。

我更喜欢后者,因为我喜欢掌控一切。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-09
    • 2012-07-02
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    相关资源
    最近更新 更多