孤独的猫

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

QT中使用信号和槽机制实现事件驱动,即用QObject::connect函数将事件与处理函数相对应,原型为inline bool QObject::connect(const QObject *asender, const char *asignal,const char *amember, Qt::ConnectionType atype) const
{ return connect(asender, asignal, this, amember, atype); }

以下例程显示一个滑动杆(slider),和数据感知(spinBox)控件,并设置他们之间的信号机制:

#include <QApplication>
#include <QtGui/QHBoxLayout>
#include <QtGui/QSlider>
#include <QtGui/QSpinBox>

int main(int argc, char *argv[])
{
 QApplication a(argc, argv);
 QWidget *window=new QWidget;
 window->setWindowTitle("Enter Your Age");
 QSpinBox *spinBox=new QSpinBox;
 QSlider *slider=new QSlider(Qt::Horizontal);
 spinBox->setRange(0,130);
 slider->setRange(0,130);

 QObject::connect(spinBox,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));
 QObject::connect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));
 spinBox->setValue(35);

 QHBoxLayout *layout=new QHBoxLayout;
 layout->addWidget(spinBox);
 layout->addWidget(slider);
 window->setLayout(layout);
 window->show();
 return a.exec();
}

posted on 2011-04-08 20:21  孤独的猫  阅读(358)  评论(0编辑  收藏  举报