首先对Qt进行简单的了解:
1、Qt 是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI(图形用户界面(Graphical User Interface))程序,也可用于开发非GUI程序,比如控制台工具和服务器。
2、Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。
3、2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。
4、2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。
****************************************************************************************************************************************
信号与槽:
在我的理解下,信号与槽类似于C语言中的自定义函数与主函数自之间的关系,信号需要加载然后槽中的内容才能够被执行,在C语言中和自定义函数要在主函数中调用才可以使用。
使用:
QObject::connect(ui->computePushButton,SIGNAL(clicked()),this,SLOT(calSlot()));
分析:
1:QObject:: (注意开头两个字母大写,后面添加两个冒号)
2:connect() 信号与槽的连接函数,在括号内部放置参数
3:ui->自定义部件的名称 (例如记事本中的openAction,这里的大小写命名依照习惯)
4:SIGNAL(triggered()) 这里的参数是指信号被触发的方式:
clicked 一般指点击、按下
triggered 一般是QAction等被触发
activated 一般指控件被激活等(激活原因可以有很多)
5:this this指针只能在一个类的成员函数中调用,它表示当前对象的地址
6:SLOT(自定义槽的名称) 这里的名称包含了括号,类似于C语言中的被调用的函数
自定义四则运算的槽的声明:
自定义四则运算的槽的定义:
void Widget::calSlot()
{
this->setWindowTitle("Calculator - B");
int first=ui->firstLineEdit->text().toInt();
int second=ui->secondLineEdit->text().toInt();
int result;
if(ui->comboBox->currentIndex()==0)
{
result=first+second;
ui->resultLineEdit->setText(QString::number(result));
QMessageBox::information(this,"Result",QString::number(result));
}
if(ui->comboBox->currentIndex()==1)
{
result=first-second;
ui->resultLineEdit->setText(QString::number(result));
QMessageBox::information(this,"Result",QString::number(result));
}
if(ui->comboBox->currentIndex()==2)
{
result=first*second;
ui->resultLineEdit->setText(QString::number(result));
QMessageBox::information(this,"Result",QString::number(result));
}
if(ui->comboBox->currentIndex()==3)
{
if(second==0)
{
QMessageBox::warning(this,"Warning","The second is not allowed 0 !");
return ;
}
result=first/second;
ui->resultLineEdit->setText(QString::number(result));
QMessageBox::information(this,"Result",QString::number(result));
}
}
消息提示框:
- 需要的库函数:#include <QMessageBox>
- 使用方法 QMessageBox :: information ( this , "消息框的标题","消息框的内容"); //注意这里的information显示的是一种消息提示框:
-
上图用法说明:
QMessageBox msgBox; //声明函数
msgBox.setText("The document has been modified.");
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Cancel); //默认选择按钮
int ret = msgBox.exec(); //返回值,缺少该提示框无法运行 - 用法在上面自定义代码中已经有使用到;
自定义窗口名称:
代码:
this->setWindowTitle("Calculator - A");
在不同的函数下面会有不同的显示效果,具体可参考上面代码进行分析;
在编译框(调试框)中输出信息,可用于调试:
- 需要声明的库函数:#include <QtDebug>
- 使用方法: qDebug()<<"需要显示的信息"; (注意大小写,q+Debug(调试))
****************************************************************************************************************************************
最快的脚步不是跨越,而是继续,最慢的步伐不是小步,而是徘徊。
****************************************************************************************************************************************