您的位置:首页 > 其它

[ZZ 信号和槽 学习笔记

2009-03-13 21:15 429 查看
首先是用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();

}

----------------------------

希望对广大初学者有帮助,一起进步!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: