一、ubuntu16.04安装qt

1、打开终端
2、切换到管理员模式

sudo -i

3、输入下面命令,安装qt -5

sudo apt-get install cmake qt5-default qtcreator

4、执行完成就安装成功

二、创建项目

1.创建项目

qt 安装MySQL 驱动 qt安装选择_开发语言


qt 安装MySQL 驱动 qt安装选择_qt 安装MySQL 驱动_02

选择基类

QMainWindow、QWidget、QDialog 三个类就是用来创建窗口的,可以直接使用也可以继承后再使用。

  • QMainWindow 窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,可以作为GUI程序的主窗口。
  • QDialog 是对话框窗口的基类。对话框主要用来执行短期任务,或与用户进行互动,它可以是模态的也可以是非模态的。QDialog
    没有菜单栏、工具栏、状态栏等。

三、Qt选择文件夹和文件获取其路径

选择目录路径:

QString dirpath = QFileDialog::getExistingDirectory(this,"选择目录","./",QFileDialog::ShowDirsOnly);

选择单个文件路径:

QString filepath = QFileDialog::getOpenFileName(this,"选择单个文件","./");

选择多个文件路径:

QStringList filepaths = QFileDialog::getOpenFileNames(this,"选择多个文件","./");

QFileDialog.getOpenFileName() #获取一个打开文件的文件名
QFileDialog.getOpenFileNames() #获取多个打开文件的文件名
QFileDialog.getOpenFileUrl() #获取一个打开文件的统一资源定位符
QFileDialog.getOpenFileUrls() #获取多个打开文件的统一资源定位符
QFileDialog.getSaveFileName() #获取保存的文件名
QFileDialog.getSaveFileUrl() #获取保存的url

四、读取文件的内容

QString filepath = QFileDialog::getOpenFileName(this,"选择单个文件","./","Txt Files(*.txt)");
string txt_path = filepath.toStdString();
ifstream fin1;//读取文件
fin1.open(txt_path.c_str(),ios::in);
int num=0;
while(!fin1.eof())
{
point p_tmp;
fin1 >> p_tmp.x;
fin1 >> p_tmp.y;
uavs.push_back(p_tmp);
num++;
}
fin1.close();

五、QPainter

  1. QPoint(0,0)是窗口的原点,默认是窗口的左上角
  2. QPainter中常用的图形绘制函数
  3. 创建画笔
QPen pen(Qt::green,5,Qt::DotLine,Qt::RoundCap,Qt::RoundJoin);
//创建画笔(画笔使用的笔刷即颜色,线宽,画笔风格即实线点线,画笔端点风格,画笔连接风格)

qt 安装MySQL 驱动 qt安装选择_开发语言_03

  1. 绘制圆弧&多边形
    圆弧
QRectF rectangle(70.0,40.0,80.0,60.0);//确定一个矩形,左上点坐标,宽,高
int startAngle = 30*16;
int spanAngle = 120*16;
painter.drawArc(rectangle,startAngle,spanAngle);//绘制圆弧(弧线所在矩形,起始角度和跨越角度)

qt 安装MySQL 驱动 qt安装选择_打开文件_04

多边形

static const QPointF points[4] = {
	        QPointF(270.0,80.0),
	        QPointF(290.0,10.0),
	        QPointF(350.0,30.0),
	        QPointF(390.0,70.0)
	    }; //定义四个点
	    painter.drawPolygon(points,4);//使用四个点绘制多边形
  1. 使用画刷&使用画刷填充&擦除内容
  2. 渐变填充
  3. 坐标系统
    a.默认坐标系统中,原点(0,0)在左上角,x坐标向右增长,y坐标向下增长
    b.QPainter的逻辑坐标与绘图设备的物理坐标之间的映射由QPainter的变换矩阵、视口和窗口处理。逻辑坐标与物理坐标默认是一致的。
    c.QPainter也支持坐标变换(如旋转,缩放)
  4. 鼠标移动时间
    在.h文件的protected域中声明鼠标移动时间处理函数:
void mouseMoveEvent(QMouseEvent *event);

然后在widget.h中添加头文件:

#include<QToolTip>
#include<QMouseEvent>

再在构造函数中添加如下代码,保证不用按下鼠标按键也能触发鼠标移动时间(在界面显示坐标)

setMouseTracking(true);

最后添加鼠标移动事件处理函数定义:

void Widget::mouseMoveEvent(QMouseEvent *event)
{
  QString pos=QString("%1,%2").arg(event->pos().x()).arg(event->pos().y());
  QToolTip::showText(event->globalPos(),pos,this);
}