标题:【提问】请教一下有关connect的问题
作者:sdr40725
日期:2006-02-28 00:40
内容:
以下功能是用两个button在终端机下印出字串
/*ButtonWindow.h*/
#include
class ButtonWindow : public QMainWindow
{
Q_OBJECT
public:
ButtonWindow (QWidget *parent = 0 , const char *name=0);
virtual ~ButtonWindow();
private slots:
void Clicked();
void Clicked2();
};
/*ButtonWindow.cpp*/
#include "ButtonWindow.h"
#include
#include
#include
ButtonWindow::ButtonWindow(QWidget *parent , const char *name):QMainWindow(parent,name)
{
this->setCaption("17-8..test");//設定標題
QPushButton *button = newQPushButton("click me!",this,"Button1");
QPushButton *button2 = newQPushButton("hello",this,"Button2");
//QPushButton的建構元 1.Button的文字2..parent3.namebutton是QPushButton指標
button->setGeometry(20,50,90,30);
button2->setGeometry(20,10,90,30);
//button用來設定大小
connect (button,SIGNAL(clicked()),this,SLOT(Clicked()));//連接信號
connect (button2,SIGNAL(clicked()),this,SLOT(Clicked2()));//連接信號
}
ButtonWindow::~ButtonWindow() //呼叫解構元
{
}
void ButtonWindow::Clicked(void) //接收到信號時要做的動做
{
std::cout
#1 [XChinux 02-28 01:48]
connect (button,SIGNAL(clicked()),this,SLOT(Clicked()));//連接信號
你要明白,SIGNAL里的信号是第一个参数button的信号,而SLOT里的槽是第三个参数this里的槽
#2 [xuxinshao 02-28 01:53]
你可以先看看Qt的singal/slot有关的内容
connect (button,SIGNAL(clicked()),this,SLOT(Clicked()));//連接信號
connect (button2,SIGNAL(clicked()),this,SLOT(Clicked2()));//連接信號
clicked()是一个QPushButton预定义的信号,由于没有添加自定义的信号,所以也就没有必要出现signals;Clicked()和 Clicked2()是我们自定义的两个槽函数
#3 [XChinux 02-28 01:56]
那这句话是什么意思?clicked2()是槽,不是信号,当然不能放到 SIGNAL(clicked2())里了
想请教各位,为什么在button2的connect的信号函数一定要设为SIGNAL(clicked())
不能设成SIGNAL(clicked2()),还有程式中并没有设定signals,那又是怎么做signals/slot的功能呢?!
#4 [sdr40725 02-28 02:35]
多谢两位大哥解惑,小弟明白了..谢谢
#5 [weilong122 04-18 17:48]
弱若的问一下
实现这要先设计版面吗/
既要新建一个Form吗
在上面放两个按钮吗?