QT安装及基本用法

一、ubuntu16.04安装qt

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

sudo -i

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

sudo apt-get install cmake qt5-default qtcreator

4、执行完成就安装成功

二、创建项目

1.创建项目
在这里插入图片描述
在这里插入图片描述选择基类
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);
    //创建画笔(画笔使用的笔刷即颜色,线宽,画笔风格即实线点线,画笔端点风格,画笔连接风格)
    

    在这里插入图片描述

  4. 绘制圆弧&多边形
    圆弧

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

    在这里插入图片描述

    多边形

    	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);//使用四个点绘制多边形
    
  5. 使用画刷&使用画刷填充&擦除内容

    在这里插入图片描述
    在这里插入图片描述

  6. 渐变填充

    在这里插入图片描述

  7. 坐标系统

    a.默认坐标系统中,原点(0,0)在左上角,x坐标向右增长,y坐标向下增长
    b.QPainter的逻辑坐标与绘图设备的物理坐标之间的映射由QPainter的变换矩阵、视口和窗口处理。逻辑坐标与物理坐标默认是一致的。
    c.QPainter也支持坐标变换(如旋转,缩放)

  8. 鼠标移动时间

    在.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);
    }
    
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值