主要用到三个文件.form1.h,form1.cpp,main.cpp文件
#ifndef FORM1_H_
#define FORM1_H_
---
-----------------
----------------
#endif /*FORM1_H_*/
这是宏定义是为了防止被编译多次
form1.h中主要是类文件的定义,包括申明一些变量和一些函数的申明
注意:Q_OBJECT,是也是一个宏,为后面该类能使用signal和slot(信号与槽)作准备。
slot(槽):
void sendMessage();
void inputMessage();
成员变量:
QWidget *centralWidget;
QTextCodec *codec;
QPushButton *btnOK;
QPushButton *btnExit;
QPushButton *btnInput;
QPushButton *btn;
QVBoxLayout *layout;
在form1.cpp文件中:
我们实例化了构造函数和sendMessage(),inputMessage()函数
构造函数:
codec = QTextCodec::codecForName("gb18030");//中文乱码问题的解决
centralWidget = new QWidget(this);//定义一个主框架对象
//window->resize(250, 50);
this->resize(QSize(194, 323).expandedTo(this->minimumSizeHint()));//定义大小(长度和宽度)
//定义一些控件:
btnOK = new QPushButton(codec->toUnicode("确定"),centralWidget);
btnExit = new QPushButton(codec->toUnicode("取消"),centralWidget);
//布局方式,垂直布局,上下
QVBoxLayout *layout = new QVBoxLayout(centralWidget);
layout->addWidget(btnOK);
layout->addWidget(btnExit);
layout->addWidget(btn);
//加载这个centralWidget到主框架居中显示
this->setCentralWidget(centralWidget);
setWindowTitle(codec->toUnicode("Button应用"));
//设置标题
//增加signal与slot
QObject::connect(btnExit, SIGNAL(clicked()), this, SLOT(close()));
QObject::connect(btn, SIGNAL(clicked()), this, SLOT(inputMessae()));
QObject::connect(btnOK, SIGNAL(clicked()), this, SLOT(sendMessage()));
sendMessage部分:
// QMessageBox::warning(this, "Alert", codec->toUnicode("欢迎"), "OK");
// QMessageBox::about(this, "About",
// "Qt4 Gossip: <b>http://caterpillar.onlyfun.net</b>");
bool isOK;
QString text = QInputDialog::getText(this, "Input Dialog",
"Please input your comment", QLineEdit::Normal, "your comment",&isOK);
if (isOK) {
QMessageBox::information(this, "Information", "Your comment is: <b>"
+ text + "</b>", QMessageBox::Yes | QMessageBox::No,QMessageBox::Yes);
}
这里实现的功能是:通过点击一个该按钮,弹出一个对话框,以表示该点击事件被响应。
并且还可以实现特定的一些功能,如输入提示框,和一些警告信息等.
inputMessage()同理,这里就不多举止了。