[ZZ 信号和槽 学习笔记

首先是用QtDesigner制作了一个简单的Dialog,拖拉一下控件就可以了,见附件.
自动生成的头文件是ui_UiQtCheckBox.h

然后,由Ui_Dialog派生出一个新类,这里要用到C++的多继承特性.代码如下:
#ifndef H_MYDIALOG_H
#define H_MYDIALOG_H
#include
#include
#include "ui_UIQtCheckBox.h"

class MyController: public QDialog, public Ui_Dialog
//多继承,这里关系到Connect函数能不能正确执行
//因为自动生成的Ui_Dialog类不是从QObject继承的,
//所以不能Connect,在这里我郁闷了很久!
{
Q_OBJECT //这玩意只要出现了QT专用的东东slot,signal就要用到
public:
MyController():QDialog()
{
setupUi(this);
connect(pushButton, SIGNAL(clicked()),
this, SLOT(myClick()));
}
private slots:
void myClick()
{
if(checkBox->isChecked())
QMessageBox::critical(NULL, "","Checked");
else
QMessageBox::critical(NULL, "","NotChecked");
}
};
#endif
主程序代码如下:
#include
#include "MyDialog.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyController mycon;
mycon.show();
return app.exec();
}
----------------------------
希望对广大初学者有帮助,一起进步!
posted @ 2009-03-13 21:15  cnnbboy  阅读(190)  评论(0编辑  收藏  举报