最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt5.9畫五角星的方法

 更新時(shí)間:2020年07月20日 14:57:06   作者:比卡丘不皮  
這篇文章主要為大家詳細(xì)介紹了Qt5.9畫五角星的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Qt5.9畫五角星的具體代碼,供大家參考,具體內(nèi)容如下

今天記錄一下畫圖部分的程序,比較簡(jiǎn)單,容易操作,為接下來打好基礎(chǔ):

先說界面吧:

里面的圖位置跟圖像學(xué)有點(diǎn)關(guān)系,多多理解一下:

對(duì)應(yīng)的頭文件:

#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
 
namespace Ui {
class Widget;
}
 
class Widget : public QWidget
{
 Q_OBJECT
 
protected:
 void paintEvent(QPaintEvent *event);
 
public:
 explicit Widget(QWidget *parent = nullptr);
 ~Widget();
 
private:
 Ui::Widget *ui;
 
};
 
#endif // WIDGET_H

對(duì)應(yīng)的cpp 文件:

#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <iostream>
 
#include<math.h>
using namespace std;
 
void Widget::paintEvent(QPaintEvent *event)
{
 Q_UNUSED(event)
 QPainter painter(this);//創(chuàng)建QPainter對(duì)象
 painter.setRenderHint(QPainter::Antialiasing);//
 painter.setRenderHint(QPainter::TextAntialiasing);//
 //生成五角星的5個(gè)頂點(diǎn)的,假設(shè)原點(diǎn)在五角星中心
 qreal R = 100; //半徑 //這里說明一下,qreal 在windows 下面是double 在嵌入式中是float類型。
 const qreal Pi = 3.1415926;
 qreal deg = Pi * 72/180;
 QPoint points[5] = {
 QPoint(R,0),
 QPoint(R*cos(deg),-R*sin(deg)),
 QPoint(R*cos(2*deg),-R*sin(2*deg)),
 QPoint(R*cos(3*deg),-R*sin(3*deg)),
 QPoint(R*cos(4*deg),-R*sin(4*deg)),
 };
 
 //設(shè)置字體
 QFont font;
 font.setPointSize(12);
 font.setBold(true);
 painter.setFont(font);
 
 
 //設(shè)置畫筆
 QPen penLine;
 penLine.setWidth(2);//線寬
 penLine.setColor(Qt::blue); //劃線顏色
 //Qt::NoPen,Qt::SolidLine, Qt::DashLine, Qt::DotLine,Qt::DashDotLine,Qt::DashDotDotLine,Qt::CustomDashLine
 penLine.setStyle(Qt::SolidLine);//線的類型,實(shí)線、虛線等
 //Qt::FlatCap, Qt::SquareCap,Qt::RoundCap
 penLine.setCapStyle(Qt::FlatCap);//線端點(diǎn)樣式
 //Qt::MiterJoin,Qt::BevelJoin,Qt::RoundJoin,Qt::SvgMiterJoin
 penLine.setJoinStyle(Qt::BevelJoin);//線的連接點(diǎn)樣式
 painter.setPen(penLine);
 
 //設(shè)置畫刷
 QBrush brush;
 brush.setColor(Qt::yellow); //畫刷顏色
 brush.setStyle(Qt::SolidPattern); //畫刷填充樣式
 painter.setBrush(brush); //
 
 //設(shè)計(jì)繪制五角星的PainterPath,以便重復(fù)使用
 QPainterPath starPath;
 starPath.moveTo(points[0]);
 starPath.lineTo(points[2]);
 starPath.lineTo(points[4]);
 starPath.lineTo(points[1]);
 starPath.lineTo(points[3]);
 starPath.closeSubpath(); //閉合路徑,最后一個(gè)點(diǎn)與第一個(gè)點(diǎn)相連
 
 starPath.addText(points[0],font,"0"); //顯示端點(diǎn)編號(hào)
 starPath.addText(points[1],font,"1");
 starPath.addText(points[2],font,"2");
 starPath.addText(points[3],font,"3");
 starPath.addText(points[4],font,"4");
 
 //繪圖
 painter.save(); //保存坐標(biāo)狀態(tài)
 painter.translate(100,120);
 painter.drawPath(starPath); //畫星星
 painter.drawText(0,0,"S1");
 painter.restore(); //恢復(fù)坐標(biāo)狀態(tài)
 
 painter.translate(300,120); //平移
 painter.scale(0.8,0.8); //縮放
 painter.rotate(90); //順時(shí)針旋轉(zhuǎn)
 painter.drawPath(starPath);//畫星星
 painter.drawText(0,0,"S2");
 
 painter.resetTransform(); //復(fù)位所有坐標(biāo)變換
 painter.translate(500,120); //平移
 painter.rotate(-145); //逆時(shí)針旋轉(zhuǎn)
 painter.drawPath(starPath);//畫星星
 painter.drawText(0,0,"S3");
}
 
Widget::Widget(QWidget *parent) :
 QWidget(parent),
 ui(new Ui::Widget)
{
 ui->setupUi(this);
 setPalette(QPalette(Qt::white)); //設(shè)置背景色是白色
 setAutoFillBackground(true); //設(shè)置背景自動(dòng)填充
 resize(600,300); //固定大小
}
 
Widget::~Widget()
{
 delete ui;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++實(shí)現(xiàn)LeetCode(191.位1的個(gè)數(shù))

    C++實(shí)現(xiàn)LeetCode(191.位1的個(gè)數(shù))

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(191.位1的個(gè)數(shù)),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語言的合法標(biāo)識(shí)符與整型詳解

    C語言的合法標(biāo)識(shí)符與整型詳解

    這篇文章主要為大家詳細(xì)介紹了C語言的合法標(biāo)識(shí)符與整,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C語言數(shù)組全面詳細(xì)講解

    C語言數(shù)組全面詳細(xì)講解

    數(shù)組是一組有序的數(shù)據(jù)的集合,數(shù)組中元素類型相同,由數(shù)組名和下標(biāo)唯一地確定,數(shù)組中數(shù)據(jù)不僅數(shù)據(jù)類型相同,而且在計(jì)算機(jī)內(nèi)存里連續(xù)存放,地址編號(hào)最低的存儲(chǔ)單元存放數(shù)組的起始元素,地址編號(hào)最高的存儲(chǔ)單元存放數(shù)組的最后一個(gè)元素
    2022-05-05
  • c++關(guān)鍵字mutable深入解析

    c++關(guān)鍵字mutable深入解析

    先說用法,mutable關(guān)鍵字只能修飾非靜態(tài)以及非常量成員變量,使用mutable修飾的成員變量在const函數(shù)中的值是可以修改的
    2013-09-09
  • C++反射的一種實(shí)現(xiàn)方法詳解

    C++反射的一種實(shí)現(xiàn)方法詳解

    這篇文章主要給大家介紹了關(guān)于C++反射的一種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • EasyC++自動(dòng)存儲(chǔ)持續(xù)性

    EasyC++自動(dòng)存儲(chǔ)持續(xù)性

    這篇文章主要介紹了EasyC++自動(dòng)存儲(chǔ)持續(xù)性,下面文章圍繞EasyC++自動(dòng)存儲(chǔ)持續(xù)性的相關(guān)資料展開全文資料,需要的小伙伴可以參考一下下面文章的具體內(nèi)容,希望對(duì)你的學(xué)習(xí)有所幫助
    2021-12-12
  • C語言數(shù)據(jù)的存儲(chǔ)超詳細(xì)講解中篇練習(xí)

    C語言數(shù)據(jù)的存儲(chǔ)超詳細(xì)講解中篇練習(xí)

    使用編程語言進(jìn)行編程時(shí),需要用到各種變量來存儲(chǔ)各種信息。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個(gè)變量時(shí),就會(huì)在內(nèi)存中保留一些空間。您可能需要存儲(chǔ)各種數(shù)據(jù)類型的信息,操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么
    2022-04-04
  • linux C++ 獲取文件絕對(duì)路徑的實(shí)例代碼

    linux C++ 獲取文件絕對(duì)路徑的實(shí)例代碼

    下面小編就為大家?guī)硪黄猯inux C++ 獲取文件絕對(duì)路徑的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • 使用C++描繪心形

    使用C++描繪心形

    本文給大家分享的是一個(gè)使用c++繪制心形的代碼,雖然情人節(jié)已經(jīng)過去了,但是只要有心,天天都是情人節(jié)~~哈哈,讓那些說程序猿都是木頭的人去死吧。
    2015-03-03
  • 淺談C語言Free空指針會(huì)怎樣

    淺談C語言Free空指針會(huì)怎樣

    在C語言中,使用free函數(shù)釋放一個(gè)空指針是安全的,不會(huì)引發(fā)任何錯(cuò)誤或異常,本文就來詳細(xì)的介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10

最新評(píng)論

永州市| 永福县| 怀化市| 石泉县| 梁平县| 南康市| 农安县| 新和县| 凭祥市| 什邡市| 六盘水市| 资中县| 搜索| 依兰县| 天柱县| 东台市| 宝清县| 河源市| 汶川县| 柳江县| 云南省| 宁明县| 平乐县| 法库县| 辉南县| 泰宁县| 乌苏市| 宜兰市| 青海省| 沁水县| 南开区| 工布江达县| 古蔺县| 专栏| 福贡县| 西宁市| 永修县| 开原市| 陇西县| 宣汉县| 娄烦县|