您当前的位置: 首页 >  c++

phymat.nico

暂无认证

  • 0浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

在Qt中使用C++代码创建界面

phymat.nico 发布时间:2017-12-25 23:37:10 ,浏览量:0

图灵赠书——程序员11月书单     【思考】Python这么厉害的原因竟然是!     感恩节赠书:《深度学习》等异步社区优秀图书和作译者评选启动!     每周荐书:京东架构、Linux内核、Python全栈
在Qt中使用C++代码创建界面
标签: QtC++创建界面纯代码图文讲解
2016-05-08 15:05 18911人阅读 评论(0) 收藏 举报
分类:
Qt编程浅尝(91)

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() 中添加如下代码:

[cpp] view plain copy print ?
  1. //设置标题  
  2. this->setWindowTitle(tr("Widgets演示"));  
  3. //设置客户区大小  
  4. this->resize(300, 120);  
  5. //设置背景颜色  
  6. QPalette palette = this->palette();  //获取调色板  
  7. palette.setColor(QPalette::Window, QColor(255, 255, 255));  //设置为白色  
  8. this->setPalette(palette);  //重新设置调色板  
  9. //添加QLabel控件  
  10. QLabel *label = new QLabel(this);  //创建QLabel控件  
  11. setCentralWidget(label);  //将当前控件至于中央  
  12. label->setText(tr("Hello World!"));  //设置控件文本  
  13. label->setAlignment(Qt::AlignCenter);  //文本水平和垂直都居中  

运行结果为:

也可以在设置文本时使用简单的HTML。将上面第 13 行代码改为: label->setText(tr("Hello World!"));

运行结果为:
关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0461s