• 4729阅读
  • 2回复

急求QT问题,并交朋友 895000080 [复制链接]

上一主题 下一主题
离线wykqhyjs
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-14
节选的一段代码
myForm::myForm()
{

setupUi(this);
i=0;q=0;sum=0;
connect( pushButton, SIGNAL(clicked()), this, SLOT(myslot2()));
connect(spinBox, SIGNAL( valueChanged (  i )), this, SLOT(myslot()));

}



void  myForm:: myslot()
{
q=i;

s=QString::number(q, 10);
qDebug("fasfaf");


textEdit->insertPlainText(s);

}

虽然编译能通过,但是经过经验,信号和槽貌似没起作用,q值未随spinBox的变化修改,这个是为什么吗?

2 C++在类中定义一个变量,能对其立即赋值吗?为什么我 int i=1会报错,去掉=1不报错。
3 Qt助手里的信号 能当作一个函数直接调用吗?信号是受保护函数?
4 C++类中私有函数和保护函数做什么用?
5 什么叫在类的外部或内部调用一个函数?内部调用是指被其它函数调用吗?
6 如果在类里定义一个slot,在里面调用一个pushbutton,能或需要用this->pushbutton,这和slot的公开和私有有关系吗?
7 私有slot 私有函数 只能被类其他函数调用,对吗?不能直接用 “对象. 函数”调用?

8,怎么实现一个信号和槽 把一个radiobutton和一个整型int  a关联起来,当radiobutton中有小圆点时, a的值为1 没点 为0。
离线浪漫天使
只看该作者 1楼 发表于: 2009-03-14
1,connect(spinBox, SIGNAL( valueChanged (  i )), this, SLOT(myslot())); 这里出错了。valueChanged 里面要的是类型 int 而不是形参。
2, connect(spinBox, SIGNAL( valueChanged (  int )), this, SLOT(myslot())); 既然信号有个int了 你如果要对这个信号的int做出判断,你要在对应的槽里面加上int参数,这样信号是什么值,槽里面调用时候值就得到信号的值,所以应该是myslot(int)
3, 信号不是函数 不能调用,但是可以发声 就像消息 你可以发出消息,但你不能调用消息,槽就可以,因为槽首先是一个函数,所以具有函数特征 其次槽才是槽 才有槽的特征比如可以和信号connet,其实槽应该叫槽函数的 。槽是简称而已。
4,是c++的东西 跟qt无关了。
5,不知道你问题的上下环境是什么 ,无法准确回答
6,参照3
7,你的表达不清楚,也无法回答
8,参照2 和3 。
离线wykqhyjs
只看该作者 2楼 发表于: 2009-03-26
谢谢
快速回复
限100 字节
 
上一个 下一个