对于我的应用我需要多个常量变量,我有一个解决方案,但我认为这不是正确的方法。
我将展示我是如何宣布这一点的,并希望得到一些评论或反馈。
file:menu.h
#include <QDialog>
...
struct s_button {
int buttonNum;
QRect geometry;
QString iconFileName;
}
namespace Ui {
class Menu;
}
class Menu : public QDialog
{
Q_OBJECT
public:
...
}
file:menu.cpp
#include "menu.h"
#include "ui_menu.h"
...
const s_button menuButtons[] =
{
{ 0, QRect(104,120,160,160), "VolumeUp.png" },
{ 1, QRect(104,300,160,160), "VolumeDown.png" },
{ 2, QRect(104,480,160,160), "Mute.png" }
};
...
//Constructor
Menu::Menu(QWidget *parent) :
QDialog(parent),
ui(new Ui::MenuDialog)
{
ui->setupUi(this);
....
}
void Menu::drawMenuButton()
{
uint s = sizeof(menuButtons) / sizeof(menuButtons[0]);
for(uint i=0; i<s; i++) {
drawImage(menuButtons[i].iconFileName, menuButtons[i].geometry);
}
....
}
这是正确的方式还是有另一种方法来处理这个问题?
感谢adavanced
答案 0 :(得分:0)
const s_button menuButtons[] = {
{ 0, QRect(104,120,160,160), "VolumeUp.png" },
{ 1, QRect(104,300,160,160), "VolumeDown.png" },
{ 2, QRect(104,480,160,160), "Mute.png" }
};
您可以这样做,它被称为聚合成员初始化。 { 0, QRect(104,120,160,160), "VolumeUp.png" }
会按会员顺序初始化s_button
个数据成员。