【QT课程设计】一:基本布局设计与选择图片功能

前言

最近由于一些个人生活事情,课程设计拖了很久=。=
在确认过相关要求、反复更改后,最终决定当前的版本,首先是最基本的要求,打开图片并显示的功能。

基本布局

基本布局

这个基本布局,基本就没咋布局,首先用了一个tabWidget来区分图片功能区与视频功能区。
暂时布局结构图

先以图片功能区开始,中间黑色的方块是结构图中piclabel,用label来放置需要显示的图片。
左侧工具栏用dockWidget做工具箱栏目(结构图中workboxwidget),其中用一个Vertical Layout来放置按钮,依次放置七个功能按钮,命名我这边用了英文直译或拼音的方式,反正只要自己看得懂就行。
至此,最基本的一部分布局已经设计完了,可以开始设计第一个功能,选择图片。

选择图片

在ui文件中右键选择图片按钮(我这边是ChPicBtn),转到槽,clicked,按钮单击触发事件会自动生成好。

void MainWindow::on_ChPicBtn_clicked()
{
    //打开图片文件,选择图片
    QStringList srcDirPathListS = QFileDialog::getOpenFileNames(this, tr("选择图片"),
                                                                QDir::homePath(), tr("图像文件(*.jpg *.png *.bmp)"));
    qDebug()<<"图片路径"<<srcDirPathListS; //在控制台输出路径观察
    QImage image=QImage(srcDirPathListS.at(0));//初始化选中第一张图片
    qDebug()<<"image:"<<image;
    if(!image.isNull())
    {
        ui->piclabel->setPixmap(QPixmap::fromImage(image));
    }
    else
    {

         return;
    }

初步效果
图片
图片选择功能已经完成了,但发现图片大小出了点问题,所以需要做一步大小匹配来处理图片。
我们创建一个方法来处理图片。

//mainwindow.cpp
//图片居中显示,图片大小与label大小相适应
QImage MainWindow::ImageSetSize (QImage  qimage,QLabel *qLabel)
{
    QImage image;
    QSize imageSize = qimage.size();
    QSize labelSize = qLabel->size();

    double dWidthRatio = 1.0*imageSize.width() / labelSize.width();
    double dHeightRatio = 1.0*imageSize.height() / labelSize.height();
            if (dWidthRatio>dHeightRatio)
            {
                image = qimage.scaledToWidth(labelSize.width());
            }
            else
            {
                image = qimage.scaledToHeight(labelSize.height());
            }
            return image;

    }

记得要去头文件里添加这个方法

//mainwindow.h
public:
    QImage ImageSetSize(QImage  qimage,QLabel *qLabel);

这里的思路是用一个方法读取到读入的图片与显示图片的Label的size,将Label的大小赋值给image,同时处理纵横关系。

将刚刚写好的选中图片方法里,加入处理图片大小的方法,再显示图片。

void MainWindow::on_ChPicBtn_clicked()
{
    //打开图片文件,选择图片
    QStringList srcDirPathListS = QFileDialog::getOpenFileNames(this, tr("选择图片"),
                                                                QDir::homePath(), tr("图像文件(*.jpg *.png *.bmp)"));
    qDebug()<<"图片路径"<<srcDirPathListS; //在控制台输出路径观察
    QImage image=QImage(srcDirPathListS.at(0));//初始化选中第一张图片
    qDebug()<<"image:"<<image;
    if(!image.isNull())
    {   
        image =ImageSetSize(image,ui->piclabel); //处理图像大小
        ui->piclabel->setPixmap(QPixmap::fromImage(image));
    }
    else
    {

         return;
    }
}

处理大小后效果

这个时候已经基本完成了选择图片功能。

小羊咩咩咩嗷
关注 关注
  • 11
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
QT课程设计
12-25
在进行QT课程设计时,首先需要对QT库进行深入学习,包括其核心功能、信号与槽机制、布局管理、控件库等。信号与槽机制是QT中的一个关键特性,它允许对象间的通信,使得代码更易于理解和维护。布局管理则帮助开发者在...
C++课程设计:基于QT的银行排队模拟系统.zip
09-01
《基于QT的银行排队模拟系统》是一份C++课程设计,使用了QT这一跨平台的图形用户界面应用程序开发框架。本项目旨在通过模拟银行排队服务流程,帮助学习者理解和掌握C++编程语言以及QT库的应用,提升软件设计与实现的...
PyQt5:文件选择图片显示
yvdedahai的博客
04-07 1618
的QWidget子类,其中包含一个QPushButton和一个QLabel。当用户单击按钮时,我们使用QFileDialog让用户选择一个图像文件,并在QLabel中显示选择的图像。
qt实现简易图片转换功能
marsAphrodite的博客
10-24 7818
qt图片转换 1.ui控件及布局 ​ 通过上方控件中,寻找所适合的控件,之后将其拖拽到自己合适的位置上: ​ 具体布局如下图所示: 2.设置ui控件名称 ​ 如上图所示,我将每一个单选按钮都设置了相对应的名字,分别为上方的radioButton_16 /32 /64 /128 /256 其余的控件也都设置了相应的类名(名字),那我们就来使用它们吧. 3.使用控件进行界面交互 3.1 选择图片 ​ 右键点击选择图片按钮,之后点击转到槽选项,继续点击弹出框中的clicked()点击交互按钮『会自动
QT】实现用户登录后选择图片显示并显示图片路径
最新发布
m0_58743201的博客
06-19 235
QT】实现用户登录后选择图片显示并显示图片路径。
Qt绘图:选中区域
龚建波
12-01 3227
0.前言 选区操作是比较常见的需求,如截图、图表等。一般矩形选区居多,有的是四个边都可编辑,有的是横向可编辑。单个选区的操作逻辑也是比较简单的,之后会在此基础上增加更复杂的需求。 本文代码源码链接及实现效果如下: github 链接(SimpleSelection类):https://github.com/gongjianbo/EasyQPainter 1.实现细节 矩形区域可以用 QRect 来保存,先对这个类有个基本的认识: QRect有四个成员变量,分别对应左上角和右下角点坐标 x.
QT选择图片的保存路径,并且将这个路径打印出来
weixin_45778713的博客
10-28 195
【代码】QT选择图片的保存路径,并且将这个路径打印出来。
C++/Qt 国际象棋 课设(全注释)附赠5000+课设报告
05-26
适合有C++、Qt课程设计的同学,本程序包括注册、登录、人人、人机、悔棋、复盘、认输、帮助、关于、背景音乐、更换棋盘皮肤等功能,已经通过了学校的课设验收。包含文件读写、多线程、重载与多态、qt ui、插入音乐与图片、动态数组等多种知识,绝对物超所值。 下载提示:需要把文件夹名称改成英文。需要把登录注册忘记密码的文件地址(现在是player.txt)改成自己本地的文件。res里面有一些多余的图片资源,不影响程序运行,可以自己删掉。 bug提示:有时候个别初始化的棋子图片不正确。有时候落子后也会出现可落子的提示框。其他bug等你发现~ 课设报告5000+字,包含项目简介、项目内容、总结体会等。
Qt中用QLabel显示图片
积累点滴,保持自我
02-20 3万+
关于QT设置图片的一些心得,转载自网络一篇博文,对自己帮助很大
QT—常用窗口部件
qq_54169998的博客
12-12 1029
QWidget类是所有部件对象的基类,被称为基础窗口部件,继承关系详看QWidget类关系图。QWidget提供自我绘制和处理用户输入等基本功能,如接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。一个没有父窗口部件的窗口部件一直是顶级窗口部件。非顶级窗口部件是父窗口的子部件。
QT笔记-Label控件显示图片
C_panpan的专栏
07-14 2412
2、 Label控件设计界面显示图片。1、Label控件动态显示图片
QT课程设计】二:图片的多选功能与切换功能
weixin_43035795的博客
11-22 4775
上一章我们完成了选择图片并打开,细心的同学在做这一部分时候会发现,我们制作了一个多选图片并打开第一张图片显示的功能,但在多选时,我们打开图片将会因为图片命名原因,可能无法准确打开自己想要的图片,本章将开展打开多张图片并相互切换的功能开发
C++课程设计团队项目:基于QT实现的机房预约管理系统.zip
09-12
【标题】:“C++课程设计团队项目:基于QT实现的机房预约管理系统”是指一个以C++编程语言为核心,利用QT框架开发的机房预约管理软件。QT是一个跨平台的应用程序开发框架,常用于创建GUI(图形用户界面)程序,支持...
数字图像处理课程设计:基于C++&Qt实现简单的数字图像处理系统.zip
09-26
7. GUI设计:使用Qt的信号与槽机制,以及布局管理器来创建交互式的图像处理界面,用户可以通过按钮、滑块等控件来选择和调整处理参数。 8. 多线程技术:在处理大型图像时,可以利用多线程提高程序的执行效率,提升...
课程设计 - 基于Qt的中文分词系统.zip
09-12
4. **界面设计文件**:"*.ui",用Qt Designer创建的GUI布局,描述了窗口、控件的布局和样式。 5. **编译脚本和构建文件**:如Makefile或者qmake生成的构建脚本,用于自动化编译过程。 6. **运行时文件**:包括可执行...
QT选则一个图片来显示
weixin_44840658的博客
04-17 624
1、 显示D:/picture/QQ20190410100504 QMovie *movie = new QMovie(D:/picture/QQ20190410100504"); ui.label->setMovie(movie); movie->start(); 2、 //打开指定文价夹 QString fileName = QFileDialog::getOpenFileName...
qt如何实现一个图片选择操作
dawntrees的专栏
11-13 1144
把浏览图片的窗口分成9个块,标号123456789,在mousepressevent中方法中获取鼠标的位置,判断鼠标位置是在哪个方块的位置区域内, 分别把123456789传到绘制图片显示函数里面,根据标号用switch 判断在哪个图片上绘制红色的方框,表示图片已经选中,对图片进行操作
QT--3.创建一个简单的图形界面
weixin_45913886的博客
08-18 2455
qt的移植性非常强。
pyqt5 从本地选择图片 并显示在label上
热门推荐
qq_32973061的博客
07-20 7万+
1.主要用到 QFileDialog 方法打开本地文件 2.界面    打开前:        打开后: 3. 代码 import sys from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore i...
python 不使用Qt选择一张图片打开
03-20
可以使用Pillow库来打开一张图片,代码如下: ```python from PIL import Image img = Image.open("image.jpg") img.show() ``` 其中,"image.jpg"是你想要打开的图片的文件名。这段代码会打开图片并显示在屏幕上。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • QT课程设计:基于QT的图像处理程序 7596
  • 【QT课程设计】三:图片的灰度化、二值化(阈值可调)、3×3均值滤波 4870
  • 【QT课程设计】二:图片的多选功能与切换功能 4775
  • 【QT课程设计】一:基本布局设计与选择图片功能 4771
  • 【QT课程设计】四:伽马变换(针对彩图)、边缘检测 3463

分类专栏

  • 笔记 2篇

最新评论

  • 【QT课程设计】二:图片的多选功能与切换功能

    DecadeCio000: 朋友,请问这个具体是怎样修复的?而且我选好图片之后,就会闪退

  • QT课程设计:基于QT的图像处理程序

    m0_63246795: 大神能不能分享一下整个包啊🙈🙈

  • 【QT课程设计】二:图片的多选功能与切换功能

    m0_47267006: 信工校友

  • 【QT课程设计】二:图片的多选功能与切换功能

    Agitowaker: 因为image有个最大值

  • 【QT课程设计】二:图片的多选功能与切换功能

    weixin_51214078: 我也是这样 你解决了吗

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 【QT课程设计】七、国际化与跨平台功能实现
  • 【QT课程设计】六:硬币检测功能的实现
  • 【QT课程设计】五:部分内容修正、利用opencv读入视频并进行部分图像处理
2022年8篇
2021年5篇

目录

目录

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

PHP网站源码同乐SEO按天扣费沙井百度竞价包年推广大运百度网站优化大芬模板制作东莞网站制作永湖网站优化软件民治推广网站荷坳网络营销石岩企业网站建设木棉湾如何制作网站塘坑网站改版坂田网络营销横岗百度竞价包年推广龙岗至尊标王吉祥SEO按天收费大芬seo优化盐田百搜标王沙井网络推广坪山seo网站推广丹竹头建站丹竹头百度标王民治外贸网站制作永湖模板制作平湖百姓网标王塘坑至尊标王东莞网站定制南联网站搭建永湖网站设计模板广州网络广告推广观澜标王歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化