滑动条QSlider和进度条QProgressBar

2024-01-12 15:52

本文主要是介绍滑动条QSlider和进度条QProgressBar,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 滑动条:QSlider

实例化

 //实例化1
//    QSlider* slider = new QSlider(this);QSlider* slider = new QSlider(Qt::Horizontal,this);//第一个参数使摆放方式

2.1滑动条的基本函数

滑动条刻度的 位置 参数

QSlider::NoTicks   //不要画任何标记
QSlider::TicksBothSides   //在槽的两边画刻度
QSlider::TicksAbove    //在(水平)滑块上方画刻度
QSlider::TicksBelow  //在(水平)滑块下方绘制刻度标记
QSlider::TicksLeft   //在(垂直)滑块的左侧绘制刻度
QSlider::TicksRight //在(垂直)滑块的右侧绘制刻度

QSlider

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"//滑动条的使用
Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{ui->setupUi(this);//设置刻度值this->slider->setTickInterval(10);//设置滑动条刻度的位置this->slider->setTickPosition(QSlider::TicksBelow);//下面有刻度//获取刻度值this->slider->tickInterval();//获取滑动条的位置this->slider->tickPosition();//设置滑动条的当前值this->slider->setValue(5);//设置滑动条的范围this->slider->setRange(0,10);
}Dialog::~Dialog()
{delete ui;
}

2.2 信号

void actionTriggered(int action)//在滑块滑动时被触发时发出void rangeChanged(int min, int max)//当滑动条范围发生变化时,发出此信号void sliderMoved(int value)//滑动条移动时触发信号void sliderPressed()//按住滑动条滑轮时触发void sliderReleased()//当用户用鼠标释放滑块时(即松开时触发)void valueChanged(int value)//当滑动条值改变时,这个信号被发出

2.2.1 举例

QSlider

绑定

dialog.cpp

//绑定滑动条移动的信号connect(this->slider,SIGNAL(sliderMoved(int)),this,SLOT(value_Changed(int)));

定义

dialog.h

public slots://滑动条移动void value_Changed(int value);

实现

dialog.cpp

void Dialog::value_Changed(int value){qDebug()<<"音量值:"<<value<<endl;
}

2. 进度条:QProgressBar

实例化

//实例化QProgressBar* progressBar = new QProgressBar(this);

2.1 代码实现

2.1.1 进度条的基本函数

QProgressBar

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"//进度条的使用
Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{ui->setupUi(this);//复位this->progressBar->reset();//设置最大值this->progressBar->setMaximum(100);//设置最小值this->progressBar->setMinimum(0);//设置当前值this->progressBar->setValue(50);//意思是加载时,就从50%开始加载//设置进度条的范围this->progressBar->setRange(0,100);//设置进度条的摆放形式this->progressBar->setOrientation(Qt::Horizontal);//水平//设置进度条的加载方向this->progressBar->setInvertedAppearance(true);//反向加载}Dialog::~Dialog()
{delete ui;
}

2.2 信号

当进度条中显示的值发生变化时,就会发出这个信号。

2.3 练习:实现滑动条控制进度条

QSlider_QProgressBar

dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QSlider>
#include <QProgressBar>
#include <QDebug>QT_BEGIN_NAMESPACE
namespace Ui { class Dialog; }
QT_END_NAMESPACEclass Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent = nullptr);~Dialog();public slots://槽void rece_value(int value);private:Ui::Dialog *ui;//实例化滑动条和进度条QSlider* slider = new QSlider(Qt::Horizontal,this);QProgressBar* progressBar = new QProgressBar(this);};
#endif // DIALOG_H

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"//实现滑动条控制进度条
Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{ui->setupUi(this);//移动滑动条的位置this->slider->move(100,100);//移动进度条的位置this->progressBar->move(100,300);//绑定滑动条滑动触发信号connect(this->slider,SIGNAL(sliderMoved(int)),this,SLOT(rece_value(int)));}Dialog::~Dialog()
{delete ui;
}void Dialog::rece_value(int value){qDebug()<<value<<endl;//设置进度条的值this->progressBar->setValue(value);
}

3. 实现食堂满意度调查表

要求:

(1)设置3个选项,选项题目自由返回

(2)每个选项下分4个选择, 最好的选择分数为10分

(3)用户可以自行填写满意度调查表

(4)实现对满意度分值的计算,并给出相关建议(根据不同的分段,建议不同)

(5)用户必须将每个选项填写完成,如果没有填写完,则给予用户提示

例如:

你对食堂早餐满意度

很好:10       一般:6               不好:4              很差:0

Diao_shitang

dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QDebug>QT_BEGIN_NAMESPACE
namespace Ui { class Dialog; }
QT_END_NAMESPACEclass Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent = nullptr);~Dialog();public slots:void rece_peoblem1(const QString& text);void rece_peoblem2(const QString& text);void rece_peoblem3(const QString& text);private slots:void on_pushButton_clicked();private:Ui::Dialog *ui;int sum = 0;//记录总分int count = 0;//保证用户做完每个题的标志位
};
#endif // DIALOG_H
dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"/*
实现食堂满意度调查表要求:(1)设置3个选项,选项题目自由返回(2)每个选项下分4个选择, 最好的选择分数为10分(3)用户可以自行填写满意度调查表(4)实现对满意度分值的计算,并给出相关建议(根据不同的分段,建议不同)(5)用户必须将每个选项填写完成,如果没有填写完,则给予用户提示
例如:你对食堂早餐满意度很好:10       一般:6               不好:4              很差:0*/Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{ui->setupUi(this);//绑定问题1 2 3 中的列表项被选中的信号connect(ui->problem1,SIGNAL(activated(QString)),this,SLOT(rece_peoblem1(QString)));connect(ui->problem2,SIGNAL(activated(QString)),this,SLOT(rece_peoblem2(QString)));connect(ui->problem3,SIGNAL(activated(QString)),this,SLOT(rece_peoblem3(QString)));
}Dialog::~Dialog()
{delete ui;
}void Dialog::rece_peoblem1(const QString &text){QStringList list = text.split(" ");//以空格分割获取的内容QString xuanxiang = list[0];//取出选项if(xuanxiang=="A"){sum+=10;}else if(xuanxiang=="B"){sum+=6;}else if(xuanxiang=="C"){sum+=4;}else if(xuanxiang=="D"){sum+=0;}count++;}void Dialog::rece_peoblem2(const QString &text){QStringList list = text.split(" ");//以空格分割获取的内容QString xuanxiang = list[0];//取出选项if(xuanxiang=="A"){sum+=10;}else if(xuanxiang=="B"){sum+=6;}else if(xuanxiang=="C"){sum+=4;}else if(xuanxiang=="D"){sum+=0;}count++;
}void Dialog::rece_peoblem3(const QString &text){QStringList list = text.split(" ");//以空格分割获取的内容QString xuanxiang = list[0];//取出选项if(xuanxiang=="A"){sum+=10;}else if(xuanxiang=="B"){sum+=6;}else if(xuanxiang=="C"){sum+=4;}else if(xuanxiang=="D"){sum+=0;}count++;
}//提交
void Dialog::on_pushButton_clicked()
{qDebug()<<sum<<endl;if(count==3){if(sum<=10){qDebug()<<"非常抱歉,我们侯期一定注意整改"<<endl;ui->jianyi->setText("非常抱歉,我们侯期一定注意整改");count=0;sum=0;}else if(sum>10 && sum<=20){qDebug()<<"谢谢你的配合,关于你反应的问题,我会高度重视"<<endl;ui->jianyi->setText("谢谢你的配合,关于你反应的问题,我会高度重视");count=0;sum=0;}else if(sum>20 && sum<=30){qDebug()<<"谢谢你对我们的肯定,对于不足我们正在改进,谢谢"<<endl;ui->jianyi->setText("谢谢你对我们的肯定,对于不足我们正在改进,谢谢");count=0;sum=0;}}else{qDebug()<<"请做完所有题目!"<<endl;ui->jianyi->setText("请做完所有题目!");}
}

这篇关于滑动条QSlider和进度条QProgressBar的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/598373

相关文章

专题二_滑动窗口_算法专题详细总结

目录 滑动窗口,引入: 滑动窗口,本质:就是同向双指针; 1.⻓度最⼩的⼦数组(medium) 1.解析:给我们一个数组nums,要我们找出最小子数组的和==target,首先想到的就是暴力解法 1)暴力: 2)优化,滑动窗口: 1.进窗口 2.出窗口 3.更新值 2.⽆重复字符的最⻓⼦串(medium) 1)仍然是暴力解法: 2)优化: 进窗口:hash[s[rig

hot100刷题第1-9题,三个专题哈希,双指针,滑动窗口

求满足条件的子数组,一般是前缀和、滑动窗口,经常结合哈希表; 区间操作元素,一般是前缀和、差分数组 数组有序,更大概率会用到二分搜索 目前已经掌握一些基本套路,重零刷起leetcode hot 100, 套路题按套路来,非套路题适当参考gpt解法。 一、梦开始的地方, 两数之和 class Solution:#注意要返回的是数组下标def twoSum(self, nums: Lis

C++实现百分号进度条的程序

#include<iostream>#include<Windows.h>//Sleep调用using namespace std;int main(){std::cout << "\n正在输出记录数据...... ";for( int i=0; i <= 100; i++ ) // 打印百分比 {std::cout.width(3);//i的输出为3位宽std::cout <<

【leetcode详解】考试的最大困扰度(滑动窗口典例)

实战总结: sum += answerKey[right] == c; 经典操作,将判断语句转化为0, 1接收来计数//大问题分解: 对'T'还是'F'做修改, 传参为c//滑动窗口: 遍历, 维护left& right指向 及 c的个数, 更新不知从何下手写代码时:考虑先写好第一次的,然后以此为基础补充代码以适后续情况 题面: 解题感受: 思路总体好想, 实现略有挑战。 思路分析:

初识Linux · 进度条

目录 前言: 1 缓冲区和回车换行 2 进度条 前言: 我们目前学习了些许知识,已经足够支持我们写一个非常非常小的项目了,即进度条,相信大家都有过下载游戏,等待游戏更新完成的时候,那么此时就有一个进度条,代表着游戏的更新进度,那么我们今天就来模拟实现这个过程,在此之前,我们需要一些预备知识。 1 缓冲区和回车换行 回车换行?是的,你没有看错,相信不少人对换行有一定的误解,我们

【每日一题】LeetCode 2379.得到K个黑块的最少涂色次数(字符串、滑动窗口)

【每日一题】LeetCode 2379.得到K个黑块的最少涂色次数(字符串、滑动窗口) 题目描述 给定一个字符串 blocks,其中每个字符代表一个颜色块,可以是 ‘W’(白色)或 ‘B’(黑色)。你需要找到一个至少包含 k 个连续黑色块的子串。每次操作可以将一个白色块变成黑色块。你的任务是找到至少出现一次连续 k 个黑色块的最少操作次数。 和该题目类似:【每日一题】LeetCode 202

【视频教程】手把手AppWizard轻松制作一个emWin滑动主界面控制框架,任意跳转控制(2024-09-06)

现在的新版AppWizard已经比较好用,用户可以轻松的创建各种项目常规界面。 比如早期创建一个支持滑动的主界面框架,并且可以跳转各种子界面,仅仅界面布局和各种图片格式转换都要花不少时间,而现在使用AppWizard,可以说轻轻松松,毫不费力。 用户唯一要做的就是根据自己的芯片性能做一定的速度优化。 视频: https://www.bilibili.com/video/BV17Rp3eLE

Flutter-listview的item左右滑动,删除item

import 'package:flutter/material.dart';//列表左右滑动删除void main() =>runApp(MaterialApp(home: HomePage(),));class HomePage extends StatelessWidget {final List<String> items = List.generate(20, (index) =>

滑动窗口——632. 最小区间

最近在抽时间写LC上的一个专栏——2024春招冲刺百题计划。挑着做,做了几道和滑动窗口相关的题目,632. 最小区间,LC上标记为困难,第一次写完全没有思考,参考了别人写的答案茅塞顿开,特此记录以鞭策自己学习。最近实习结束回到学校后,一边搞科研,自己本来想一天写一篇博客,以此鞭策自己学习,但自己研究方向和后端丝毫不沾边,自己最近又没有学习新的知识用以记录博客,也甚是悔已。人生如是,

【Android】NestedScrollView的简单用法与滚动冲突、滑动冲突

一、NestedScrollView 1. 什么是 NestedScrollView NestedScrollView 是 Android 中一个用于处理垂直方向滚动的布局组件,它继承自 FrameLayout,同时支持嵌套滑动(Nested Scrolling)机制。相比于传统的 ScrollView,NestedScrollView 专为解决嵌套滚动冲突问题设计,能够与其他支持嵌套滑动的子