当前位置: 首页 > wzjs >正文

在长沙阳光医院做网站编辑模板建站优点

在长沙阳光医院做网站编辑,模板建站优点,夫唯徒弟做外贸服装批发的seo案例 用wp做的网站,国外流行的内容网站一、实验目的和要求 1、掌握Qt中掌握绘图工具和图形界面设计;绘制常见的图形。 2、熟悉Qt界面设计中常用的控件。 3、了解滚动条、滑动条、进度条、旋转按钮控件的用法。 二、实验内容 1、设计一个绘图软件,完成图像的绘制操作。 2、建立按钮的信号…

一、实验目的和要求

1、掌握Qt中掌握绘图工具和图形界面设计;绘制常见的图形。

2、熟悉Qt界面设计中常用的控件。

3、了解滚动条、滑动条、进度条、旋转按钮控件的用法。

二、实验内容

1、设计一个绘图软件,完成图像的绘制操作。

2、建立按钮的信号与槽函数,实现点击按钮进行相应文件操作。

3、利用滚动条、滑动条、进度条、旋转按钮控件完成绘图相关操作。

三、实验步骤

1、新建工程,选择Qt Widgets Applocation选项,工程名称为draw_test,类名设置为MainWidget继承的父类为Qwidget。

3、双击打开mainwdget.ui文件,打开界面设计,分别使用鼠标拖放一个Push Button、一个QScrollBar控件、一个QSlider控件、一个QProgressBar控件、四个QRadioButton控件,并将QScrollBar控件名称修改为scrollBar,QSlider控件名称修改为slider,QProgressBar控件名称修改为progressBar, QRadioButton控件名称分别修改为rectButton、circleButton、lineButton、curveButton,按钮文本分别修改为“矩形、圆形、直线及直线”。Button控件名称修改为resetButton,按钮文本分别修改为“重置”

4、鼠标选中resetButton两个按钮,右键菜单选择转到槽,选择clicked()信号;选中slider、progressBar、scrollBar三个控件,右键菜单选择转到槽,选择valueChanged 信号

mainwidget.h

#ifndef MAINWIDGET_H
#define MAINWIDGET_H#include <QWidget>
#include <QPainter>
#include <QColor>namespace Ui {
class MainWidget;
}class MainWidget : public QWidget
{Q_OBJECTpublic:explicit MainWidget(QWidget *parent = nullptr);~MainWidget();protected:void paintEvent(QPaintEvent *event) override; // 重绘事件private slots:void onShapeChanged(); // 形状改变槽函数void on_resetButton_clicked(); // 重置按钮槽函数void on_slider_valueChanged(int value); // 滑块值改变槽函数void on_progressBar_valueChanged(int value); // 进度条值改变槽函数void on_scrollBar_valueChanged(int value); // 滚动条值改变槽函数void on_colorButton_clicked(); // 颜色按钮槽函数private:void drawShape(QPainter &painter); // 绘制图形函数Ui::MainWidget *ui;int shapeType; // 当前图形类型 (0:矩形, 1:圆形, 2:直线, 3:曲线)int progressValue; // 进度条值int shapeSize; // 图形大小int scrollOffset; // 滚动偏移量QColor shapeColor; // 图形颜色
};#endif // MAINWIDGET_H

mainwidge.ccp

#include "mainwidget.h"
#include "ui_mainwidget.h"#include <QVBoxLayout>
#include <QGroupBox>
#include <QPushButton>
#include <QMessageBox>
#include <QColorDialog>
#include <QDebug>MainWidget::MainWidget(QWidget *parent): QWidget(parent), ui(new Ui::MainWidget), shapeType(0) // 默认绘制矩形, progressValue(0) // 进度条初始值, shapeSize(100) // 默认形状大小, scrollOffset(0) // 滚动偏移量初始化为0, shapeColor(Qt::black) // 默认颜色为黑色
{ui->setupUi(this);// 连接单选按钮的toggled信号到onShapeChanged槽connect(ui->rectButton, &QRadioButton::toggled, this, &MainWidget::onShapeChanged);connect(ui->circleButton, &QRadioButton::toggled, this, &MainWidget::onShapeChanged);connect(ui->lineButton, &QRadioButton::toggled, this, &MainWidget::onShapeChanged);connect(ui->curveButton, &QRadioButton::toggled, this, &MainWidget::onShapeChanged);// 设置默认选中的按钮ui->rectButton->setChecked(true);
}MainWidget::~MainWidget()
{delete ui;
}void MainWidget::onShapeChanged()
{// 根据选中的单选按钮更新图形类型if (ui->rectButton->isChecked()) {shapeType = 0; // 矩形} else if (ui->circleButton->isChecked()) {shapeType = 1; // 圆形} else if (ui->lineButton->isChecked()) {shapeType = 2; // 直线} else if (ui->curveButton->isChecked()) {shapeType = 3; // 曲线}update(); // 触发重绘事件
}void MainWidget::paintEvent(QPaintEvent *event)
{Q_UNUSED(event); // 避免未使用参数的警告QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing); // 设置抗锯齿// 设置画笔颜色painter.setPen(shapeColor);// 计算形状的起始位置int x = (width() - shapeSize) / 2;int y = (height() - shapeSize) / 2;// 平移坐标系到中心位置painter.translate(x, y);// 绘制选定的形状drawShape(painter);
}void MainWidget::drawShape(QPainter &painter)
{switch (shapeType) {case 0: // 绘制矩形painter.drawRect(0, 0, shapeSize, shapeSize);break;case 1: // 绘制圆形painter.drawEllipse(0, 0, shapeSize, shapeSize);break;case 2: // 绘制直线painter.drawLine(0, 0, shapeSize, shapeSize);break;case 3: // 绘制曲线painter.drawArc(0, 0, shapeSize, shapeSize, 0, 90 * 16); // 绘制90度弧线break;}
}void MainWidget::on_resetButton_clicked()
{// 重置所有控件到初始状态ui->slider->setValue(100); // 滑块重置为100ui->progressBar->setValue(0); // 进度条重置为0ui->scrollBar->setValue(0); // 滚动条重置为0shapeType = 0; // 重置为矩形shapeSize = 100; // 重置图形大小shapeColor = Qt::black; // 重置颜色为黑色ui->rectButton->setChecked(true); // 选中矩形按钮update(); // 刷新界面
}void MainWidget::on_slider_valueChanged(int value)
{shapeSize = value; // 更新图形大小update(); // 刷新界面
}void MainWidget::on_progressBar_valueChanged(int value)
{progressValue = value; // 更新进度条值ui->progressBar->setValue(progressValue); // 设置进度条值
}void MainWidget::on_scrollBar_valueChanged(int value)
{progressValue = value; // 更新进度条值ui->progressBar->setValue(progressValue); // 设置进度条值
}void MainWidget::on_colorButton_clicked()
{// 打开颜色对话框,让用户选择颜色QColor color = QColorDialog::getColor(shapeColor, this, "选择图形颜色");if (color.isValid()) { // 如果用户选择了有效颜色shapeColor = color; // 更新图形颜色update(); // 刷新界面}
}

运行结果

四、问题讨论

1、分析不同控件的作用、功能和用法。

2、分析Qt中绘图类的使用。

1、分析不同控件的作用、功能和用法。

1. QRadioButton(单选按钮)

作用:提供互斥选择,用于在多个选项中选择一个
功能:

  • isChecked() 检查是否被选中
  • setChecked(true/false) 设置选中状态
  • toggled(bool) 信号在状态改变时触发

用法:

// 创建并连接信号

QRadioButton *rectBtn = new QRadioButton("矩形");

connect(rectBtn, &QRadioButton::toggled, this, &MainWidget::onShapeChanged);

// 判断选中状态

if(ui->rectButton->isChecked()){ /*...*/ }

QSlider(滑块)

作用:通过滑动选择数值范围
功能:

  • setRange(min,max) 设置取值范围
  • value() 获取当前值
  • valueChanged(int) 信号在值变化时触发

用法:

// 初始化设置

ui->slider->setRange(10, 200);  // 大小范围10-200

ui->slider->setValue(100);      // 初始值

// 连接信号

connect(ui->slider, &QSlider::valueChanged, this, &MainWidget::on_slider_valueChanged);

QScrollBar(滚动条)

作用:提供数值滚动调节功能
功能:

  • 与QSlider类似,但外观和交互方式不同
  • 常用于内容区域滚动

用法:

ui->scrollBar->setRange(0, 100);

connect(ui->scrollBar, &QScrollBar::valueChanged,

        this, &MainWidget::on_scrollBar_valueChanged);

QProgressBar(进度条)

作用:显示操作进度
功能:

  • setValue(int) 设置当前进度
  • setRange(min,max) 设置范围
  • 支持水平/垂直方向

用法:

ui->progressBar->setRange(0, 100);

ui->progressBar->setValue(50);  // 显示50%进度

QPushButton(普通按钮)

作用:触发操作命令
功能:

  • clicked() 信号在点击时触发
  • 可设置文本/图标

用法:

QPushButton *btn = new QPushButton("重置");

connect(btn, &QPushButton::clicked, this, &MainWidget::on_resetButton_clicked);

QColorDialog(颜色对话框)

作用:提供颜色选择功能
功能:

  • getColor() 静态方法打开对话框
  • 返回用户选择的QColor

用法:

QColor color = QColorDialog::getColor(Qt::black, this, "选择颜色");

if(color.isValid()){

    // 使用有效颜色

}

二、Qt中绘图类的使用分析

1. QPainter(核心绘图工具)

核心功能:

void MainWidget::paintEvent(QPaintEvent*){

    QPainter painter(this);  // 1. 创建Painter对象

   

    painter.setPen(Qt::red); // 2. 设置画笔(轮廓)

    painter.setBrush(Qt::blue); // 设置画刷(填充)

   

    painter.drawRect(10,10,100,50); // 3. 绘制图形

}

基本图形绘制

方法

功能

示例

drawRect()

矩形

painter.drawRect(0,0,w,h)

drawEllipse()

椭圆/圆

painter.drawEllipse(0,0,d,d)

drawLine()

直线

painter.drawLine(x1,y1,x2,y2)

drawArc()

圆弧

painter.drawArc(x,y,w,h,start,span)

 QPainter可以在多种设备上绘制:

  • QPixmap:内存图像,适合屏幕显示

QPixmap pixmap(200,200);

QPainter painter(&pixmap);

  • QImage:像素级操作,适合图像处理
  • QWidget:直接在控件上绘制(如本实验)
  • QPrinter:打印输出

4. 坐标系统

  • 默认坐标系:左上角为原点(0,0),x向右增加,y向下增加
  • 视图-窗口转换:

painter.setWindow(-50,-50,100,100); // 定义逻辑坐标范围

painter.setViewport(0,0,width(),height()); // 映射到物理坐标

http://www.dtcms.com/wzjs/56602.html

相关文章:

  • 找公司做网站注意什么网站优化seo怎么做
  • 甘肃网站备案东莞seo黑帽培训
  • 建设b2b网站的多少钱在线代理浏览网页
  • 成都微信微网站建设百度帐号申请注册
  • 网站功能说明怎么做班级优化大师手机版下载
  • 网站建设存在困难自建网站
  • wordpress调用摘要免费的seo优化工具
  • asp网站源码下载怎么建立企业网站免费的
  • 政府网站哪里做的最好教育培训机构加盟十大排名
  • 重庆信息网官网常用seo站长工具
  • 用django做的网站做市场推广应该掌握什么技巧
  • php能自己做网站吗seo推广薪资
  • 教人做饮料的网站巢湖seo推广
  • 网站开发费用网站免费推广
  • 怎么可以上传自己做的网站长沙百度网站推广
  • 不用开源做网站公司网站模版
  • 如何做网站渗透测试南宁seo排名优化
  • 成人自考大专报名官网入口自媒体seo优化
  • 网站页面示意图怎么做如何提高搜索引擎优化
  • 手表网站哪个好产品怎样推广有效
  • 莱州网站建设包年多少钱广州最新疫情最新消息
  • 做网站时会遇到什么问题网站seo具体怎么做
  • wordpress网站 添加微信支付西安seo工作室
  • 怎么把网站链接做二维码站长平台工具
  • 武汉第七建设集团有限公司网站技能培训网
  • 网站导航做多大友情链接购买
  • 如何搭建https网站太原百度快速排名提升
  • 选择做网站销售的优势域名解析在线查询
  • 专业网站建设哪个好公司网站模板设计
  • 万创网做的网站怎么样2020 惠州seo服务