问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

qt实现多张图片的切换不使用ui控件

发布网友 发布时间:2022-12-17 01:32

我来回答

1个回答

热心网友 时间:2023-09-12 21:22

​ 通过上方控件中,寻找所适合的控件,之后将其拖拽到自己合适的位置上:

​ 具体布局如下图所示:

2.设置ui控件名称

​ 如上图所示,我将每一个单选按钮都设置了相对应的名字,分别为上方的radioButton_16 /32 /64 /128 /256

其余的控件也都设置了相应的类名(名字),那我们就来使用它们吧.

3.使用控件进行界面交互

3.1 选择图片

​ 右键点击选择图片按钮,之后点击转到槽选项,继续点击弹出框中的clicked()点击交互按钮『会自动跳转到写入代码的位置,同时在Headers下的app.h中,会自动导入插槽内』意味着,我们能通过这个点击事件来展示我们所需要的交互内容.

​ 那么,着手于代码的操作吧:

​ 『在Sources下的app.cpp中』

​ 我们能看到自动生成的代码块,其中:



app我们所挂载的媒介,这个媒介app下,仍有着其他的属性
pushButton_file这个按钮的名字
clicked点击事件

​ 不信的话你可以试着点击ui界面的最底层区域,这样我们就能看到objectName的值是app了,当然,不要试图在你写代码期间修改这个媒介,否则,有你好受的…

void app::on_pushButton_file_clicked()
{
fileName = QFileDialog::getOpenFileName(this,tr("Open File"),".",tr("Images(*.png*.jpeg *.jpg)"));
//获取图片的路径 不过 一定要在「 app.h」里,加入以下头文件 #include <QFileDialog>
// #include <QDebug>
// #include <QFileInfo>
// 同时在『app.h』的private中,加入: QString fileName; 否则会找不到这个名字从而报错
qDebug() << "fileName=" << fileName;

QFileInfo fi(fileName);
QString name = fi.fileName();
ui->label_filename->setText(name);
//QT 文件信息 将路径(fileName) 存储在 fi中, 然后 获取到fi里面的文件名称
//在这里,fi.fileName() 中的fileName并不是路径,而是路径中 所在的文件信息
//比如 fileName= "C:/Users/power/Pictures/0.jpg" 那么『name』就是 0.jpg
//之后赋值给name,紧接着将这个name的值 送到 ui内的组件label_filename上,起名为 name
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
​ 上方,『ui->label_filename』代表的是整个ui界面下,一个叫做label_filename的文本框,被设置了叫做『name』的名字, 名字为选择图片的文件名,比如: 0.jpg

​ 简单来说: 我所拖拽到ui界面中的所有控件,都是ui的儿子,那么 作为父亲是不是随时可以调用自己的儿子呢?(这点毋庸置疑)

​ 效果图:

​ 心细的在左上角会发现一个图片,那么,我们怎么导入这个图片,使得个性化呢

3.2 个性化窗口图片

​ 右键这个工程文件->在出现的菜单中选择Add New选项,接着选择左侧Qt,在右侧选择Qt Resourse File,最后选择右下方choose按钮.接着在File name中写入文件名为images,(可以写别的文件名,并不一定要这个),下一步后点击完成.

​ 这些操作都完成后,会在工程文件下出现Resources,并且在内部存在一个images.qrc文件

​ 那么,我们接着右键->添加现有文件

​ 随后会弹出一个窗口,在其中我们选择images,并选择其中的图片,这样图片就加载进来了.(一定要提前在这个工程文件下放入images文件夹,同时将文件夹中放入图片.)

之后在app.ui中,选中整个窗口,找到windowicon,然后点击三角,选择资源后,将图片放入.就有图标喽

RC_ICONS = images/logo.ico
1

​ 如果想发布时带有图标,一定要在XX.pro文件内,写上这句话:

3.3 默认选中单选框

​ 正常来说,我们会默认选中一个单选框,使得界面美观

​ 这样,我们就默认选中64X64的了

3.4 预览图片

​ 同上,选择『预览图片』,右键 转到槽 『仍然是点击事件』,之后在『app.h』中private属性下加入,并加入头文件:

void app::on_pushButton_showPic_clicked()
{
if(ui->radioButton_16->isChecked()){ //16X16被选中的话
picHeight = 16;
picWidth = 16;
}else if(ui->radioButton_32->isChecked()){
picHeight = 32;
picWidth = 32;
}else if (ui->radioButton_64->isChecked()) {
picHeight = 64;
picWidth = 64;
}else if (ui->radioButton_128->isChecked()) {
picHeight = 128;
picWidth = 128;
}else if (ui->radioButton_256->isChecked()) {
picHeight = 256;
picWidth = 256;
}
qDebug() << "picWidth:" << picWidth;
qDebug() << "picHeight:" << picHeight;
if(!fileName.isEmpty()){ //判断文件名是否为空
QPixmap map(fileName);
QPixmap newMap = map.scaled(picWidth,picHeight);
ui->label_picture_show->setPixmap(newMap);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
picHeight自己设置的图片的高度
picWidth自己设置的图片的宽度
isChecked代表 是否选中当前的元素
​ 总而言之,就是我选择其中一个按钮,然后根据自己设置的图片大小,设置你所展示的图片大小,比如:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
钢琴谱一小段有三行怎么弹?最上是高音,然后还是高音,最后是低音?我用来... 请问跨专业考研都需要哪些方面的准备啊? 2013109期福彩双色球开奖号码 vivoy3手机如何长截屏 男友贪污也是网上追逃犯我还可以和他在一起吗 网上追逃犯罪嫌疑人住家里算是窝藏或是包庇吗 ps3海贼无双普通版有下载卡的吗? 关于PS3版海贼王无双和北斗神拳无双 PS3现在海贼无双3.55破解能玩了吗 我看网上说有破解补丁 谁能给个地址... 现在网上下载得到PS3的海贼无双。铁拳6,。高达无双3等游戏吗 如何在Qt中把一个map声明称一个成员变量 QT中怎么直接调map.second中的数据 塘厦中信观澜凯旋城有没有带学位,是不是公立学校 广东智通职业培训学院 东莞市铭格教育咨询有限公司怎么样? 塘厦电视大学是学什么的 初灵晶透焕颜美肌面膜有什么功效? mastercam2017设置进刀颜色和退刀颜色 专门喝酒拉单的职业叫什么? mastercam2022怎么改默认铣床 名剑风流的剧情简介 虚空之触如何获得 初中教wps吗? wps表格怎么计算课程数量 跪求一高数题答案 高等数学求解答!!! 铁研393玉米种子积温多少 一条9到11品相好的尼泊尔凤眼菩提价格 2011年被公开的转基因玉米种子,被国家叫停的有哪些? 铁研369品种介绍 QT 三大绘图类:QPixmap/QImage/QPicture 为什么大家都结婚了? 纸塑袋的性能参数 大家都结婚了用英语怎么说 “为什么大家都悄无声息地结婚了呢”? 大家都结婚了吗,多少岁结婚的? 看到大家都结婚了,我心里开始变得慌了! 你会因为大家都结婚了,所以结婚么? 身边的朋友都结婚了,我不想结婚,这可耻吗? 钢铁侠模拟器怎么下载 万古神帝最后找到明帝了吗 《滚烫情话作逃酒》这本小说的全文免费的吗? 万古神帝飞天鱼怎么只有一半文字 万古神帝螭帝给阎无神说了什么 dw源代码保存在哪里 在dw里面,如何使用网上免费下载的客服源代码 您好!我有一个网站,用dw批量替换选择的是源码 为什么替换之后什么也不显示了! AgCl和Ag 2 CrO 4 的溶度积分别为1.8×10 - 10 mol 2 ·L - 2 和2.0×10 - 12 mol 3 ·L - 3 篮球场的感受 暑假我哪也没去,我去篮球场上 作文 600字 题目:暑期见闻