2022-9-2 QT实现画板(能改变画笔大小,颜色)

这篇具有很好参考价值的文章主要介绍了2022-9-2 QT实现画板(能改变画笔大小,颜色)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用QT实现画板功能,代码如下

首先是头文件部分代码

#ifndef MYWND_H
#define MYWND_H

#include <QWidget>
#include <QPixmap>
#include <QPoint>
#include <QMouseEvent>
#include <QPen>
#include <QPaintEvent>
#include <QPainter>
#include <QPushButton>
#include <QFont>
#include <QFontDialog>
#include <QColor>
#include <QColorDialog>
#include <QDebug>
#include <QMessageBox>
#include <QString>
#include <QChar>


QT_BEGIN_NAMESPACE
namespace Ui { class mywnd; }
QT_END_NAMESPACE

class mywnd : public QWidget
{
    Q_OBJECT
signals:
    void signal_1();
public slots:
    void showMes();
    void say_mes();
    void chg_pen();


public:
    mywnd(QWidget *parent = nullptr);
    ~mywnd();
    void mousePressEvent(QMouseEvent *e); //鼠标按下事件
    void mouseMoveEvent(QMouseEvent *e); //鼠标移动事件
    void paintEvent(QPaintEvent *e); //绘制事件

private:
    Ui::mywnd *ui;
    QPixmap *myPix;  //定义绘制类的指针
    QPoint startPoint;  //画笔的起始位置

    QPushButton *btn1; //用于更改颜色
    QPushButton *btn2; //用于关闭画板
    QPushButton *btn3; //用于调整画笔粗细
    QColor color;  //画笔颜色
    QFont font;  //画笔粗细
    QString text1;
    double pensize; //画笔粗细调整

   // Ui::Widget *ui;
};
#endif // MYWND_H

后面是mywnd.cpp部分的代码

#include "mywnd.h"
#include "ui_mywnd.h"

void mywnd::showMes()
{
   //btn1->setEnabled(false);
    color =QColorDialog::getColor(Qt::white,this); //选择画笔颜色


}

//处理自定义信号的槽函数
void mywnd::say_mes()
{
   // speech.say(btn2->text());
    this->close();
}
//负责改变画笔的粗细
void mywnd::chg_pen()
{
    QString str=ui->lineEdit->text();
    this->pensize=str.toDouble();
}

mywnd::mywnd(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::mywnd)
{
    ui->setupUi(this);
    //设置画板尺寸
    this->setFixedSize(1024,768);
    //this->setMaximumSize(1000,500);
    //this->setMinimumSize(500,400);
    myPix = new QPixmap(this->size()); //将自定义的绘制版大小设置为画板大小
    myPix->fill(Qt::white);  //默认将自定义绘制版填充为白色
    //this->setBackgroundRole(QPalette::ColorRole(""));
    //this->setStyleSheet("background-image:url(:/image/7.jpg);");

    //设置按钮1负责更改画笔颜色
    btn1 = new QPushButton(this);
    btn1->resize(100,50);
    btn1->setParent(this);
    btn1->move(0,height()-50);
    btn1->setText("更改画笔颜色");
    //连接按钮1
    connect(btn1,&QPushButton::clicked,this,&mywnd::showMes);

    //设置按钮2负责关闭画板
    btn2 = new QPushButton(this);
    btn2->move(btn1->width(),height()-50);
    btn2->resize(btn1->size());
    btn2->setText("关闭画板");
    //连接按钮2
    connect(btn2,&QPushButton::clicked,this,&mywnd::say_mes);

    //设置按钮三负责更改画笔粗细
    btn3 = new QPushButton("改变粗细",this);
    btn3->resize(btn1->size());
    btn3->move(btn1->width()+btn2->width(),height()-50);
    //连接按钮3
    connect(btn3,&QPushButton::clicked,this,&mywnd::chg_pen);

    //发射信号
    connect(btn3,&QPushButton::clicked,[&]()
    {
        emit signal_1();
    });


    //将自定义的信号连接到自定义槽
    connect(this,&mywnd::signal_1,this,&mywnd::chg_pen);


}

mywnd::~mywnd()
{
    delete ui;
}

void mywnd::mousePressEvent(QMouseEvent *e) //鼠标按下事件
{
    startPoint=e->pos();
}
void mywnd::mouseMoveEvent(QMouseEvent *e) //鼠标移动事件
{
    //申请一个画家类
    QPainter painter(myPix); //依附于自定义的画板
    QPen pen;
    //此处需要添加画板自定义颜色
    //pen.setColor(Qt::green);
    pen.setColor(color);
    //此处需要设置画笔粗细
    //pen.setWidth(10);
    pen.setWidth(pensize);
    //pen.setStyle()

    painter.setPen(pen);

    //开始画线
    painter.drawLine(startPoint,e->pos());

    //将当前点设为新的起点
    startPoint =e->pos();

    //实时更新
    update();


}
void mywnd::paintEvent(QPaintEvent *) //绘制事件
{
    //1.请一个画家,依附于this画板
    QPainter painter(this);

    //2.将自定义的绘制版
    painter.drawPixmap(0,0,*myPix);
}

最后是main.cpp部分的代码

#include "mywnd.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    mywnd w;
    w.show();
    return a.exec();
}

下面是运行的内容

qt设置画笔粗细,C,qt,开发语言,uiqt设置画笔粗细,C,qt,开发语言,ui

 文章来源地址https://www.toymoban.com/news/detail-544321.html

 

到了这里,关于2022-9-2 QT实现画板(能改变画笔大小,颜色)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Qt 一个简易画板的实现(Graphics View)】

    Qt专栏 Qt 学习之路(32): 一个简易画板的实现(Graphics View) 这一次将介绍如何使用 Graphics View 来实现前面所说的画板。前面说了很多有关 Graphics View的好话,但是没有具体的实例很难说究竟好在哪里。现在我们就把前面的内容使用 Graphics View 重新实现一下,大家可以对比一下看有

    2024年02月16日
    浏览(44)
  • 在QT的UI界面,让Widget可以跟随窗体大小而改变

    可以使用布局(Layout)机制让Widget(QWidget)随窗口一起缩放和移动。 Qt提供以下几种布局: QHBoxLayout:将QWidget按照水平方向依次排列 QVBoxLayout:将QWidget按照垂直方向依次排列 QGridLayout:将QWidget按照行列划分为多个网格,根据网格位置排列 QFormLayout:将QWidget按照表单样式排

    2024年02月07日
    浏览(40)
  • QT--day4(定时器事件、鼠标事件、键盘事件、绘制事件、实现画板、QT实现TCP服务器)

     QT实现tcpf服务器代码:(源文件) 头文件:

    2024年02月15日
    浏览(50)
  • 有几种方法修改QPushButton的大小、文字颜色等属性?(Qt面试题)

    使用 setFixedSize(width, height)函数 :可以直接调用QPushButton的setFixedSize函数,将所需的宽度和高度作为参数传递给它。这将固定按钮的大小,并防止其自动调整大小以适应其内容。 使用 setGeometry(x, y, width, height)函数 :setGeometry函数可以设置QPushButton的位置和大小。通过设置按钮的

    2024年02月13日
    浏览(38)
  • QT | 设置字体颜色

    代码 运行效果 代码1 QTextEdit,设置某行颜色 运行效果1 代码2 QTextEdit中,某行显示当前时间,并设置颜色 运行效果2 代码3 QTextEdit中,一段文字显示不同颜色 代码思路:设一个颜色,写一段文字,设一个颜色,写一段文字; 建议使用这种思路,非常简单,比富文本简易多了,

    2024年02月13日
    浏览(41)
  • qt 系列(二)---qt designer通过设置控件样式表进行背景颜色设置

    1. 前言 一般Layouts不可以进行改变样式表,当我们想修改背景样式表,同时又不改变其他控件的颜色时,可以选择List View 控件改变背景颜色。 2. 设置背景 (1)配置 .qrc 文件 新建mypicture.qrc文件,记事本打开 (2)右键选择项目–添加–现有项,选择建立的.qrc文件,此时,项

    2024年02月06日
    浏览(53)
  • Qt - QLabel设置字体颜色

    ** ** • 第一种,使用setPalette()方法如下: • 第二种,使用样式表如下: • 第三种,使用QStyle,在Qt Demo中有一个很好的讲解QStyle的例子,可以参考学习。 • 第四种,使用一些简单的HTML格式:

    2024年02月15日
    浏览(59)
  • Qt Creator设置IDE的字体、颜色、主题样式

        Qt是一款开源的、跨平台的C++开发框架,支持Windows、Linux、Mac系统,从1995发布第一版以来,发展迅猛,最开始是用于Nokia手机的Symbian(塞班)系统和应用程序开发,现在是用于嵌入式软件、桌面软件(比如WPS、VirtualBox)、Android软件等开发,到2023年12月,其最新的版本已经更

    2024年02月04日
    浏览(43)
  • qt设置tableview单元大小跟随窗口变化

    设置效果过于离奇。 右侧为代码设置显示效果

    2024年02月11日
    浏览(35)
  • qt设置tablewidget颜色、添加选择框、添加按钮和进度条

    添加选择框 在代码中设置tablewidget的样式表 设置表格,添加选择框 cellClicked事件响应,当点击表格项,对复选框进行选中和取消选择 添加进度条和按钮 设置表格 建立按钮和处理函数的信号槽连接,让按钮点击,进度条移动 槽函数和进度条控件 项目下载 https://download.csdn.n

    2024年02月11日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包