在Qt中实现一个对话框

主要用到三个文件.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()同理,这里就不多举止了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值