Qt如何新建一个Qpushbutton的成员变量数组,并在源文件中依次给每个成员变量元素新建一个button对象
时间: 2024-02-11 20:05:15 浏览: 39
在Qt中,你可以使用指针数组来存储QPushButton对象的地址,然后在构造函数中使用new运算符来创建QPushButton对象,并将其地址存储在指针数组中。例如:
在头文件中声明指针数组:
```cpp
class MyWidget : public QWidget {
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr);
private:
QPushButton **m_pButtonArray; // 声明指针数组
int m_nButtonNum;
};
```
在构造函数中创建QPushButton对象,并将其地址存储在指针数组中:
```cpp
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
m_nButtonNum = 10;
m_pButtonArray = new QPushButton*[m_nButtonNum]; // 创建指针数组
for (int i = 0; i < m_nButtonNum; i++) {
m_pButtonArray[i] = new QPushButton(QString("Button %1").arg(i + 1), this); // 创建QPushButton对象,并将其地址存储在指针数组中
m_pButtonArray[i]->setGeometry(10, 10 + i * 30, 100, 25); // 设置按钮位置和大小
}
}
```
在这个例子中,我们声明了一个指针数组m_pButtonArray,将其大小设为10,然后使用new运算符在堆上创建一个大小为10的指针数组。在循环中,我们使用new运算符创建一个QPushButton对象,并将其地址存储在指针数组的第i个元素中。然后,我们使用setGeometry()函数设置按钮的位置和大小。这样,就创建了一个QPushButton对象的数组。
需要注意的是,在析构函数中需要释放所有创建的QPushButton对象和指针数组。可以使用delete运算符来释放QPushButton对象的内存,并使用delete[]运算符来释放指针数组的内存。例如:
```cpp
MyWidget::~MyWidget()
{
for (int i = 0; i < m_nButtonNum; i++) {
delete m_pButtonArray[i]; // 释放QPushButton对象的内存
}
delete[] m_pButtonArray; // 释放指针数组的内存
}
```
这样,就可以在Qt中创建一个QPushButton对象的数组了。