在Qt中使用C++代码创建界面
来源:互联网 发布:java构造方法语法 编辑:程序博客网 时间:2024/05/17 03:38
Qt 支持两种创建界面的方式:
- 一种是使用C++代码,Qt 自诞生以来就支持;
- 一种是使用 QML,可以创建个性化的界面;
Qt 提供了多种工程类型,选择不同的工程类型将导致使用不同的方式来创建界面。
首次打开Qt,会出现欢迎界面,点击New Project按钮,或者在菜单栏点击文件,然后选择新建文件或项目,
都会弹出向导对话框,如下图所示:(不同的Qt编译器版本,界面可能会有所差别)
Qt Widgets Application和Qt Console Application工程将会使用C++代码,Console 用来创建控制台程序,Widgets 用来创建GUI程序。
Qt Quick Application、Qt Quick Controls Application和Qt Canvas 3D Application工程将会使用 QML 代码,
Quick Control 主要比 Quick 多一些控件,Canvas 3D 用来创建3D动画。
选择Qt Widgets Application,点击Choose...按钮,弹出如下对话框:
填写好项目名称和保存路径,点击下一步按钮,弹出工具选择对话框:
选中Select all kits即可。这里我使用的是 VS2010 版的Qt,你也可以使用其他编译器。点击下一步按钮:
填写项目中要使用到的类的信息。简单起见,取消“创建界面”选项。单击下一步按钮,弹出“项目管理”对话框,点击完成按钮,完成项目的创建。
可以看到,IDE自动生成了四个文件:
- WidgetsDemo.pro :为工程文件,它是 qmake 产生的用于生成 makefile 的配置文件,它的名称和项目名称是一样的。
- main.cpp :是主文件,里面就是一个 main() 函数,程序从该文件开始执行。
- mainwindow.h : MainWindow 类的头文件
- mainwindow.cpp:是MainWindow 类的源文件。
- MainWindow: 是我们在创建项目时指定的名字。
整个项目的示意图如下:
现在点击运行(Run)按钮,或者按下Ctrl+R快捷键,就可以看到编译结果,如下图所示:
这是一个最简单的 Qt Widget 程序。
显示“Hello World”:
接下来,我们让程序显示"Hello World!"。打开 mainwindow.cpp,在构造函数 MainWindow() 中添加如下代码:
//设置标题this->setWindowTitle(tr("Widgets演示"));//设置客户区大小this->resize(300, 120);//设置背景颜色QPalette palette = this->palette(); //获取调色板palette.setColor(QPalette::Window, QColor(255, 255, 255)); //设置为白色this->setPalette(palette); //重新设置调色板//添加QLabel控件QLabel *label = new QLabel(this); //创建QLabel控件setCentralWidget(label); //将当前控件至于中央label->setText(tr("Hello World!")); //设置控件文本label->setAlignment(Qt::AlignCenter); //文本水平和垂直都居中
也可以在设置文本时使用简单的HTML。将上面第 13 行代码改为:
label->setText(tr("<font color='red' face='微软雅黑' size='6'>Hello World!</font>"));
运行结果为:
- 在Qt中使用C++代码创建界面
- 在Qt中使用C++代码创建界面(1)
- 使用Qt Designer创建界面
- 使用Qt Designer创建界面
- 使用Qt Designer创建界面
- 使用Qt Designer创建界面
- VS2003 C#:重写键盘响应事件、动态创建控件、创建线程、在线程中使用委托在界面显示数据
- 使用代码创建UI界面
- 使用代码在布局中创建控件
- Qt: 界面中使用中文
- Qt: 使用QML来创建界面
- 在Qt中如何使用QtDesigner创建的UI文件
- 在c代码中使用logcat
- 在c代码中使用logcat
- QT在界面中显示动态图片
- 在QT设计界面中加入QGLWidget
- 初学Qt之--在C++程序中使用C函数
- OSG中使用Qt做界面
- 硬盘的存储原理和内部架构
- 移植DS1302到CC3200
- Swift-贝赛尔曲线画扇形、弧线、圆形、多边形——UIBezierPath实现App下载时的动画效果
- linux 基本常用命令整理
- HTML5的思考
- 在Qt中使用C++代码创建界面
- IOs内存管理(二)
- 解决POC脚本对多种URL的自适应问题
- python网络入门:urllib.request模块和urllib.urllib.parse模块
- UVa 1343 The Rotation Game(IDA*)
- Android开发环境成功搭建
- 设计模式(7)--策略模式(2)
- Android之Volley框架源码分析
- oracle创建表空间