开发环境ubuntu16
zhao@zhao:~$ qmake -version
QMake version 3.0
Using Qt version 5.6.2 in /home/zhao/anaconda3/lib
程序的执行效果如下:
程序实现步骤如下:
1、打开Qt Creator->新建项目-> 选择Qt Widgets Application
2、编辑项目名称并且选择创建项目的目录
3、接下来全部选择默认设置,完成新建项目后进入文件编辑界面。
其中.pro是项目文件,其余文件夹分别存放着头文件、源文件和界面文件。(配置工程都在这个文件中哦)
注:每个qt项目都有ui文件,可以使用它开发(简单方便,点击添加槽函数会生成对应的类,然后重写方法),也可以不适用它(直接写函数窗口就好),前一种方法产生的界面比较粗糙,在真正的应用界面上还是用的第二种办法。
4、选中界面文件文件夹,双击其中的.ui文件,进入设计应用窗口界面
直接从左边拖选需要使用的控件到主界面上,需要Display Widgets中的2个Label、一个Input Widgets中的Line Edit以及Buttons中的Push Button,将它们分别放在合适的位置,并双击修改它们的名字。
把其中的label_2的frameShape和frameShadow属性分别设置为Panel和Sunken
5、接下来就为Button控件添加单击响应
1)右击“计算”按钮选择“转到槽”选择第一个clicked()函数
注意: GUI 程序除了要绘制控件,还要响应系统和用户事件,例如重绘、绘制完成、点击鼠标、敲击键盘等。当事件发生时,UI 会产生相应的变化,让用户直观地看到。大部分编程(例如Win SDK、Web前端)中使用回调函数来响应事件,而 Qt 却独创了信号和槽机制。所谓回调函数,就是程序员提前定义一个函数,当事件发生时就调用该函数。
信号和槽是Qt的核心,它让两个互不相干的对象连接起来,当一个对象的状态改变时,可以通知另一个对象。
最后需要在槽函数,添加如下代码,用这种方法会自动把按键和参函数进行关联:稍后介绍下一篇文章中实现手动connect
void MainWindow::on_pushButton_clicked()
{
bool ok;
QString tempStr;
QString valueStr=ui->lineEdit->text(); //从文本中获取字符串值
int valueInt=valueStr.toInt(&ok); //自带字符串转整型
double area=valueInt*valueInt*3.14159;
ui->label_2->setText(tempStr.setNum(area)); //写回
}
如果想生成可以独立运行的程序,可以设置成发布模式!
这样在命令行窗口可以直接运行