类'成员变量在运行时被分配(通过'new')但不会持久

时间:2015-12-11 22:43:40

标签: c++ qt

我已经声明了一个成员数组来存储一堆Qt Control小部件的指针(QLineEdit),

在主代码中,我以编程方式创建这些小部件并进行分配,但只有在函数处于范围内时才能访问它们:

    // MyGui.h
    class myGui : public QMainWindow, private Ui::uiFormWin
    {
        Q_OBJECT
        public:
            MyGui(QMainWindow *parent = 0);
            Test();
        private:
            QTimer *pUiTimer;
            QLineEdit* le2T[ 32 ];        
        public slots:       
            void GuiUpdate(void);
    }

    // MyGui.c
    MyGui::MyGui(QMainWindow *parent) : QMainWindow(parent)  
    {
        // Create Objects and Assign
        for ( int i = 0 ; i < 32; i++ ){
            le2T[ i ] = new QLineEdit (this);    
        }

        // This Displays fine:
        le2T [ 0 ]->setText ("Hello"); 

        // Setup Timer To Update Line Edit Later
        pUiTimer = new QTimer(this);
        pUiTimer->setInterval(100);
        connect(pUiTimer, SIGNAL(timeout()), this, SLOT(GuiUpdate()) );
    }

    void MyGui::GuiUpdate( void )
    {   
        // This next line causes Run-Time Crash  -- le2T[0] object is null!
        le2T [ 0 ]->setText ("World");  // Error
    }

有趣的是,即使它们不再可访问,它们仍会出现在GUI上。

我已经尝试将这些QLineEdit对象作为我的类中的成员变量(而不是指针数组),但是,访问QLineEdit的成员函数失败..而且Qt甚至不会将这些自动检测为QLineEdit对象! / p>

        .h
            QLineEdit le2T[ 32 ];   
        .cpp
        le2T[ 0 ].setText ("World");  //  Error

如何在运行时创建一个小部件数组,并保存为成员变量,以便可以从类中的任何方法访问它们?

0 个答案:

没有答案