QT创建应用程序框架


本文是介绍用QT创建程序框架。本人仅有一年的开发经验,解决方案不一定是最优的,但本文提供的方法保证是有效的。并对开发中会遇到的坑给予提示。本文完全原创,引用请注明出处。

开发环境

本文采用Qt5.10.0+VS2015,界面的创立采用Qt设计师。采用这种方案是为了将界面和处理程序解耦,便于开发行业软件。开发环境搭建的教程很多,这里不再赘述。

建立项目

打开VS2015,点取【文件】-》【新建】-》【项目】选用【模板】下的【Visual C++】下的【Qt】,并选择【Qt Widget Application】,在【名称】位置输入【QtMyDemo】。【位置】选择将诶就方案所在的文件夹。见下图:
图1 创建Qt项目
在弹出额对话框中选择【Next】,【Next】图略。
在下图中勾选“Precompiled header” 该选项是使用预定义头文件。点【Finish】完成新建项目导航。
图2 勾选使用预编译头在这里插入图片描述
现在在解决方案窗口鼠标右键点取【QtMydemo】,并点生成。项目能编译成功,运行也没有问题。
现在出现一个大坑:有些类和对象下面有红线,表示没有找到定义文件。就连stdafx.h中的QtWidgets都打不开。解决办法:
点取菜单【Qt VS TOOLS】中的【Qt project setting】,重新选择一下qt 的版本(改成其他版本点应用,然后再点回来)这样qt环境就设定好了。
在这里插入图片描述

添加菜单与响应函数

添加菜单

双击【Resource File】中的【QtMyDemo.ui】,用Qt 设计师对界面进行编辑。
1.点击【在这里输入】,输入菜单名。
客观,又一个坑:第一次输入时一定输入英文名,这样项目名称才可以按菜单名命名。
2.修改菜单名。点击菜单,在属性编辑器中修改【text】
3.给菜单加图标。将事先准备好的icon文件,prn文件以及jpg文件复制到程序目录中(各种文件都支持,非常方便)。在本实例中建立icon文件夹,把图标文件复制进去。
属性编辑器中的icon后面选择下拉菜单,然后点【选择资源】-》【编辑资源】-》【添加文件】。下图中箭头部位要选中:
在这里插入图片描述选择图标文件并确认后,图标文件加入到资源中。选择“new.icon”后点【OK】,这样菜单文字和图标设定完成。见下图。。
在这里插入图片描述

按上述操作修改所有菜单(添加图标资源只需选择资源中的图标即可)。

添加菜单响应函数

Qt的信号-槽(Signal-slot)机制非常方便,这不部分网上有很多资料。可以用Qt设计师来完成菜单响应函数。这里有个不方便的地方,就是需要先定义相应函数。我的操作方法是先布置一个按钮,然后就可以添加很多个槽函数。如果界面内容多,用Qt设计师建立信号-槽函数会很乱。下面介绍另外一种方法:直接写槽函数。
在QtMyDemo.h的构造函数下面直接添加:

public slots:
	void on_actionFun1_triggered();
	void on_actionFun2_triggered();
。。。。。。

这种Qt宏的写法,其中“actionFun1”是菜单属性的对象名称。
在这里插入图片描述
然后在QtMyDemo.cpp中添加函数体,on_actionFun1_triggered();并在函数体中设断点,编译,运行后点击菜单,可以看到程序调用了该函数体。

窗口布局

1.去除“工具栏”和“状态栏”。
2.在窗口添加两个widget,一个lable,分别命名为widgetToolsBar,widgetDialog和lableView。
3.将centralWidget设定为栅格布局。
4.widgetToolsBar的最小高度和最大高度设为50;widgetDialog的最小宽度和最大宽度设为300.这样做是为了在调整窗口尺寸时上述两个空间的尺寸一个方向不变,另一个方向充满。给lableView最大面积。
在这里插入图片描述5.设定widgetToolsBar,widgetDialog和lableView背景色,略。
6.在widgetDialog添加一个tableWidget插件,作为输入数据用。这里也可以嵌入一个对话框输入数据。该方法另文介绍。
测试:在Qt设计师中拉动窗口右下角,控件充满窗口则设置正确。见下图:

在这里插入图片描述

添加工具条按钮和相应函数

1.在widgetToolsBar中拖入两个tool Button,分别命名为toolButtonFun1,toolButtonFun2。
2.修改属性中的text为:“函数1”、“函数2”
3.选择icon。这里在资源中添加了两个png文件,该中格式的图标大小可以随意设置,而选ICO文件则只有固定的尺寸。添加方法与ico文件相似。
在这里插入图片描述4.toolButtonStyle的值选为文字在图标下。见下图。
在这里插入图片描述
5.添加相应函数
和定义菜单文件的方法类似,在QtMyDemo.h的构造函数下面直接添加:

public slots:
	void on_toolButtonFun1_clicked();
	void on_toolButtonFun2_clicked();

然后在QtMyDemo.cpp中添加函数体。

小结

用Qt的设计师可以很方便地搭建程序界面框架,用Qt的宏机制添加菜单和工具按钮的响应函数。Qt支持png和jpg图片作为图标。操作过程中有些技巧需要注意,否则代码写不下去,如:Qt安装版本的设定;菜单的对象名称输入英文;设置布局时应该选定几个控件的父窗口等。
完整代码下载

猜你喜欢

转载自blog.csdn.net/imz2y/article/details/113119910