首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

槽函数的有关问题

2012-08-21 
槽函数的问题class Button : public QGraphicsWidget{Q_OBJECTpublic:int alpha[32][32]int beta[32][32]

槽函数的问题
class Button : public QGraphicsWidget
{
  Q_OBJECT
public:
  int alpha[32][32];
  int beta[32][32];
  int delta[32][1];
  int e;
   
  ……
 
private slots:
  int button_action()
  {
  Button::e=return_seqnumber();
  int c=0;
  if (e<32)
  {
  /* for (int i = 0; i < 32; ++i)
  {

  for (int j=0; j<32; ++j)
  {
  if (i==j)
  Button::a[i][j]=1; 
  else if (i!=j)
  Button::a[i][j]=0;
  }
  }*/
  for (int i=0; i<32; ++i)
  {
  d[i][1]=a[i][e];
  }
  return d[32][1];
  }

  else if (e>=32)
  {

  /* for (int i = 0; i < 32; ++i)
  {
  for (int j=0; j<32; ++j)
  {
  if (i==j)
  Button::b[i][j]=1;
  else if (i!=j)
  Button::b[i][j]=0;
  }
  }*/

  for (int i=0; i<32; ++i)
  {
  c=c+Button::d[i][1]*Button::b[e-32][i];
  }
  }

  if (c==1)
  close();
  else
  isActive();
  } //红色注释中间的是我循环给alpha和beta赋值,不用看


想实现这样的功能:做了64个按钮,点击前32个中的一个,产生一个alpha矩阵,并且将delta(button类的成员变量)用  
  alpha的第e行赋值;
  然后点击后32个中的一个,产生一个beta矩阵, 然后将beta矩阵中的第e列和delta相  
  乘,得出一个判断变量(判断变量不管了)
问题是:我做了1个connect函数,64个按钮用一个槽实现,用e<32或者是e〉=32判断分别实现,但是每次点击了前32个中的一
  个,当时delta的被正确赋值了,再点击后32中的一个delta的值就变了。我做了2个槽分别实现也不行。

  为什么槽函数不能返回一个变量的值(delta,他是整体类Button的成员),供另一个槽函数来使用呢???

点击1号button时delta产生的值如下:
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
点击后32个随便一个调用delta,delta的值如下:
864320
3539000
3539039
2097204
6881388
7667822
2097272
2818151
2949163
2097204
7667814
7077996
6488109
7209071
6881382
103
0
0
0
0
0
0
0
0
0
0
240
0
64
0
308263040
32

[解决办法]
用一个类的全局变量不就好了?

热点排行