• 6244阅读
  • 3回复

信号与槽的问题 [复制链接]

上一主题 下一主题
离线huyaowu
 

只看楼主 正序阅读 楼主  发表于: 2010-07-20
主要的代码如下,省略了一些,为什么点击pushButton能弹出对话框,而点击pushButton_2时不会弹出,是红色的这句话不对吗?要怎样进行传值?
test.h
signals:
void mySignal();
void mySignalParam(int x);
public slots:
void mySlot();
void mySlotParam(int x);

test.cpp
test::test
{
connect(this, SIGNAL(mySignal()), this, SLOT(mySlot()));
connect(this, SIGNAL(mySignalParam(int x)), this, SLOT(mySlotParam(int x)));

connect(ui.pushButton, SIGNAL(clicked()), SIGNAL(mySignal()));
connect(ui.pushButton_2, SIGNAL(clicked()), SIGNAL(mySignalParam(100))) ;
}

void test::mySlot()
{
QMessageBox::about(this, "hello", "hello");
}

void test::mySlotParam(int x)
{
char s;
s.sprintf("x=%d", x);
QMessageBox::about(this, "hello", s);
}
离线dbzhang800

只看该作者 3楼 发表于: 2010-07-20
引用第2楼huyaowu于2010-07-20 15:32发表的  :
是集成到VS2008下的,没有警告信息,请问要如何改?能实现传值的功能


不管集成到哪儿,debug模式下都会出现运行时警告。如果看不到,调整你的链接选项(将 windows子系统调整为 console),将CMD控制台调用出来

至于程序如何改,还是自己去看Qt的manual或相关书籍吧
离线huyaowu

只看该作者 2楼 发表于: 2010-07-20
引用第1楼dbzhang800于2010-07-20 15:02发表的 :
不光红色的,前面那个有 int x 的 connect 也不对,注意看运行时的警告信息。


是集成到VS2008下的,没有警告信息,请问要如何改?能实现传值的功能
离线dbzhang800

只看该作者 1楼 发表于: 2010-07-20
引用楼主huyaowu于2010-07-20 14:48发表的 信号与槽的问题 :
主要的代码如下,省略了一些,为什么点击pushButton能弹出对话框,而点击pushButton_2时不会弹出,是红色的这句话不对吗?要怎样进行传值?
test.h
signals:
void mySignal();
void mySignalParam(int x);
.......


不光红色的,前面那个有 int x 的 connect 也不对,注意看运行时的警告信息。

快速回复
限100 字节
 
上一个 下一个