我是Qt和C ++的绝对初学者,所以请原谅我。
我正在编写桌面日历应用。我有42个按钮用于显示日期数字,点击后,它会显示一个用于添加注释的编辑字段。这些按钮已经制作好并且就位。它们都有效,但我想将它们组合成一个阵列,以便于编码。任何人都可以建议我如何做到这一点?我搜索了文档,但我真的不明白。
提前感谢您的放纵。
答案 0 :(得分:0)
您可以创建一个数组或任何其他容器(如QVector)的小部件(指向小部件的指针),以便在一个位置收集所有这些小部件。您既可以创建新对象,也可以分配已存在的对象,即:
QVector<QPushButton*> buttons;
buttons.append(new QPushButton());
最终为现有按钮:
QVector<QPushButton*> buttons;
buttons.append(ui->pushButton);
buttons.append(ui->pushButton_2);
//etc..
然后你可以像典型的数组元素一样访问它们:
buttons[0]->height = 50;
buttons[1]->setVisible(false);
答案 1 :(得分:0)
使用像这样的Qvector:
QVector<QPushButton*> btns;
btns.append(oldbuttonname);
我建议循环浏览所有按钮,而不是手动将它们逐个放入。我的意思是摆脱你以前的按钮,并在QVector
中创建非命名对象。这是一个例子:
QVector<QPushButton*> btns(42);
for (int i=0;i<btns.size();i++)
{
btns[i] = new QPushButton(/*constructor args*/);
}
//Access like this
btns[0]->member_name();