0

私のプロジェクトには QGLWidget クラスがあります。これは opengl クラスで、クラスでは main クラスの 'argc' および 'argv' 属性を使用します。しかし、これらの属性をクラスに渡すことができません。これにはいくつかの方法がありますか?

これは、argv および argc 属性を使用するクラスのコンストラクターの一部です。

VideoOpenGL::VideoOpenGL(QWidget *parent) :
    QGLWidget(parent)
{

    XnStatus nRetVal = XN_STATUS_OK;

    if (argc > 1)
    {
        nRetVal = g_Context.Init();
        //CHECK_RC(nRetVal, "Init");
        nRetVal = g_Context.OpenFileRecording(argv[1], g_Player);
        if (nRetVal != XN_STATUS_OK)
        {
            printf("Can't open recording %s: %s\n", argv[1], xnGetStatusString(nRetVal));
            return;
        }
    }

そして私の頭のファイル:

class VideoOpenGL : public QGLWidget
    {
        Q_OBJECT
    public:
        explicit VideoOpenGL(QWidget *parent = 0);
        //explicit VideoOpenGL( int & argc, char ** argv );
        //void set_mainAtribs(const int & argc, char **argv);


    protected:
        //const int argc;
        //char **argv;

        // /*
        void initializeGL();
        //void resizeGL(int w, int h);
        //void paintGL();
        static void glutKeyboard (unsigned char key, int /*x*/, int /*y*/);
        static void glutDisplay(void);
        static void glutIdle (void);
        void CleanupExit();
        void LoadCalibration();
        void SaveCalibration();
      // */
    signals:

    public slots:

    };
4

2 に答える 2

3

アプリケーションのどこからでも静的なQCoreApplication::arguments()関数をいつでも使用できます。

于 2014-05-22T02:19:23.323 に答える