1_Qt基本介绍
来源:互联网 发布:全球分红系统源码 编辑:程序博客网 时间:2024/06/05 02:04
觉得用C++写中国象棋很有趣 ,所以……
Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。
Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
优良的跨平台特性:
Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。
面向对象
Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。
丰富的 API
Qt 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理 功能。
支持 2D/3D 图形渲染,支持 OpenGL
大量的开发文档
XML 支持。
(以上内容来自 百度百科)
我安装的是Windows7平台下的Qt 第一次写的程序——HelloQt
程序如下:
头文件:
Mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include <QPushButton> // 按钮类
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = 0);
// 在QTcreator中,类中斜体字表示虚函数
virtual void paintEvent(QPaintEvent *);
// mouse press event
virtual void mousePressEvent(QMouseEvent *);
// 按钮
QPushButton* _button;
QPoint _ptClick;
signals:
public slots:
};
#endif // MYWIDGET_H
源文件:
main.cpp
#include <QApplication>//基本Qt库
#include <QWidget>//界面窗口库
#include "MyWidget.h"//自定义库
int main(int argc, char* argv[])
{
// QApplication抽象了QT的应用程序
QApplication app(argc, argv);
// QWidget抽象了窗口
// QWidget w;
MyWidget w;
w.show();
// 进入消息循环,等待用户输入
return app.exec();
}
#include "MyWidget.h"
#include <QPainter>//绘制头文件
#include <QMouseEvent>//鼠标事件头文件
MyWidget::MyWidget(QWidget *parent) : // 继承函数
QWidget(parent)
{
_button = new QPushButton("This is button", this); //定义按钮
}
void MyWidget::paintEvent(QPaintEvent *)
{
// QPainter 绘制类
// 绘制打印机、绘制图画、拷屏。。。
QPainter painter(this);
#if 0
painter.setPen(QColor(255, 0, 0)); //设置绘制画笔的颜色
painter.setBrush(QBrush(QColor(255, 255, 0)));
painter.drawLine(QPoint(0, 0), QPoint(100, 100)); //划线
painter.drawText(200, 200, "HelloQT");//写文字
painter.drawEllipse(QPoint(200, 300), 50, 50);//画椭圆
#endif
painter.drawEllipse(_ptClick, 30, 30);
}
void MyWidget::mousePressEvent(QMouseEvent *ev)
{
// 得到鼠标点击的地方
_ptClick = ev->pos();
// 强制程序重新绘制界面
update();
// QPainter p(this);
// p.drawEllipse(pt, 30, 30);
}
对c++的各种知识已经忘的差不多了 ,所以滚回去再学习了
0 0
- 1_Qt基本介绍
- 01_Qt基本控件及三大布局
- jedis基本介绍(1)
- 章1 基本介绍
- Memcache[1]基本介绍
- easyui-1-基本介绍
- prx文件_QT
- 猜数字游戏_Qt
- Apache VFS(1):基本介绍
- Lua5.1基本函数库介绍
- sed基本用法介绍1
- Lua5.1基本函数库介绍
- winpcap学习(1)基本介绍
- C++引用(1) - 基本介绍
- monkey测试1-基本介绍
- ActiveMQ基本介绍(1)
- Telnet基本介绍(1)
- 1_TinyOS的基本介绍
- [杂言] Live in memory?
- 程序通知栏通知的开发
- C++11及C++14标准的智能指针
- Android Studio 小技巧之【Extract Resource】
- VisualStudio项目中添加控制台输出窗口
- 1_Qt基本介绍
- centos 6.5关闭 防火墙
- 【PAT】1111. Online Map
- 无聊写了个QQ状态查询,但感觉这WSDL不准
- linux下自动检测mongodb 有问题就重启
- 每日170224
- C++ 笔记 关于动态内存分配 (new / delete)
- codeforces 776C Molly's Chemicals(连续子序列和为k的次方的个数)
- SpringMvc的controller是singleton的(非线程安全的)