qt-C++笔记之滑动条QSlider和QProgressBar进度条

news2024/9/20 20:29:26

qt-C++笔记之滑动条QSlider和QProgressBar进度条

—— 2024-04-28 杭州

本例来自《Qt6 C++开发指南》

文章目录

  • qt-C++笔记之滑动条QSlider和QProgressBar进度条
    • 1.运行
    • 2.阅读笔记
    • 3.文件结构
    • 4.samp4_06.pro
    • 5.main.cpp
    • 6.widget.h
    • 7.widget.cpp
    • 8.widget.ui

1.运行

在这里插入图片描述

2.阅读笔记

在这里插入图片描述

在这里插入图片描述

3.文件结构

在这里插入图片描述

4.samp4_06.pro

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    widget.cpp

HEADERS += \
    widget.h

FORMS += \
    widget.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

5.main.cpp

#include "widget.h"

#include <QApplication>

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

6.widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    //自定义槽函数
    void do_valueChanged(int value);

    void on_chkBox_Visible_clicked(bool checked);

    void on_chkBox_Inverted_clicked(bool checked);

    void on_radio_Percent_clicked();

    void on_radio_Value_clicked();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

7.widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    //将表盘,滑动条,卷滚条的valueChanged()信号与自定义槽函数关联
    connect(ui->slider,SIGNAL(valueChanged(int)),
            this, SLOT(do_valueChanged(int)));

    connect(ui->scrollBar,SIGNAL(valueChanged(int)),
            this, SLOT(do_valueChanged(int)));

    connect(ui->dial,SIGNAL(valueChanged(int)),
            this, SLOT(do_valueChanged(int)));

}

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

void Widget::do_valueChanged(int value)
{//自定义槽函数
    ui->progressBar->setValue(value);
}

void Widget::on_chkBox_Visible_clicked(bool checked)
{//textVisible
    ui->progressBar->setTextVisible(checked);
}

void Widget::on_chkBox_Inverted_clicked(bool checked)
{//InvertedAppearance
    ui->progressBar->setInvertedAppearance(checked);
}

void Widget::on_radio_Percent_clicked()
{//显示格式--百分比
    ui->progressBar->setFormat("%p%");
}

void Widget::on_radio_Value_clicked()
{//显示格式--当前值
    ui->progressBar->setFormat("%v");
}

8.widget.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Widget</class>
 <widget class="QWidget" name="Widget">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>436</width>
    <height>299</height>
   </rect>
  </property>
  <property name="font">
   <font>
    <pointsize>10</pointsize>
   </font>
  </property>
  <property name="windowTitle">
   <string>Slider和ProgreeeBar</string>
  </property>
  <layout class="QVBoxLayout" name="verticalLayout_2">
   <item>
    <widget class="QGroupBox" name="groupBox">
     <property name="title">
      <string>滑动输入</string>
     </property>
     <layout class="QHBoxLayout" name="horizontalLayout_2">
      <item>
       <widget class="QDial" name="dial">
        <property name="maximum">
         <number>200</number>
        </property>
        <property name="value">
         <number>20</number>
        </property>
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
        </property>
        <property name="wrapping">
         <bool>false</bool>
        </property>
        <property name="notchTarget">
         <double>5.000000000000000</double>
        </property>
        <property name="notchesVisible">
         <bool>true</bool>
        </property>
       </widget>
      </item>
      <item>
       <layout class="QGridLayout" name="gridLayout_2">
        <item row="0" column="0">
         <widget class="QLabel" name="label">
          <property name="text">
           <string>滑动条</string>
          </property>
         </widget>
        </item>
        <item row="0" column="1">
         <widget class="QSlider" name="slider">
          <property name="maximum">
           <number>200</number>
          </property>
          <property name="value">
           <number>23</number>
          </property>
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
          <property name="tickPosition">
           <enum>QSlider::TicksAbove</enum>
          </property>
         </widget>
        </item>
        <item row="1" column="0">
         <widget class="QLabel" name="label_2">
          <property name="text">
           <string>卷滚条</string>
          </property>
         </widget>
        </item>
        <item row="1" column="1">
         <widget class="QScrollBar" name="scrollBar">
          <property name="maximum">
           <number>200</number>
          </property>
          <property name="value">
           <number>23</number>
          </property>
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
         </widget>
        </item>
       </layout>
      </item>
     </layout>
    </widget>
   </item>
   <item>
    <widget class="QGroupBox" name="groupBox_2">
     <property name="title">
      <string>ProgressBar显示和设置</string>
     </property>
     <layout class="QVBoxLayout" name="verticalLayout">
      <item>
       <widget class="QFrame" name="frame">
        <layout class="QHBoxLayout" name="horizontalLayout">
         <property name="leftMargin">
          <number>2</number>
         </property>
         <property name="topMargin">
          <number>2</number>
         </property>
         <property name="rightMargin">
          <number>2</number>
         </property>
         <property name="bottomMargin">
          <number>0</number>
         </property>
         <item>
          <widget class="QLabel" name="label_3">
           <property name="text">
            <string>进度条</string>
           </property>
          </widget>
         </item>
         <item>
          <widget class="QProgressBar" name="progressBar">
           <property name="maximum">
            <number>200</number>
           </property>
           <property name="value">
            <number>24</number>
           </property>
          </widget>
         </item>
        </layout>
       </widget>
      </item>
      <item>
       <widget class="QFrame" name="frame_2">
        <property name="frameShadow">
         <enum>QFrame::Raised</enum>
        </property>
        <layout class="QGridLayout" name="gridLayout">
         <item row="1" column="1">
          <widget class="QRadioButton" name="radio_Value">
           <property name="text">
            <string>显示格式--当前值</string>
           </property>
           <property name="checked">
            <bool>false</bool>
           </property>
          </widget>
         </item>
         <item row="1" column="0">
          <widget class="QRadioButton" name="radio_Percent">
           <property name="text">
            <string>显示格式--百分比</string>
           </property>
           <property name="checked">
            <bool>true</bool>
           </property>
          </widget>
         </item>
         <item row="0" column="1">
          <widget class="QCheckBox" name="chkBox_Inverted">
           <property name="text">
            <string>invertedAppearance</string>
           </property>
          </widget>
         </item>
         <item row="0" column="0">
          <widget class="QCheckBox" name="chkBox_Visible">
           <property name="text">
            <string>textVisible</string>
           </property>
           <property name="checked">
            <bool>true</bool>
           </property>
          </widget>
         </item>
        </layout>
       </widget>
      </item>
     </layout>
    </widget>
   </item>
  </layout>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1631516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu安装Anaconda安装及conda使用

一. 安装anaconda3详细教程 1、下载镜像 清华大学开源软件镜像站下载地址&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下拉到最低端选择Linux&#xff0c;选择最新版&#xff08;32/64位&#xff09;下载。这里我下载的是版本Anaconda3-4.3.30-Linux…

《微服务设计》读书笔记

此为阅读纽曼《微服务设计》一书后总结的读书笔记&#xff0c;点此处下载PDF文档。 一、微服务的概念 微服务&#xff08;或称微服务架构&#xff09;是一种云原生架构方法&#xff0c;其核心思想在于将单个应用拆分为众多 小型、松散耦合的服务&#xff0c;服务之间均通过网…

AI视频教程下载:构建一个ChatGPT股票配对交易机器人

ChatGPT及其后续版本GPT-4已经开始改变世界。人们对新机会感到兴奋&#xff0c;同时对我们社会可能受到的影响感到恐惧。这门课程结合了两个主题&#xff1a;AI和财务&#xff08;算法交易&#xff09;。 你将会学到的&#xff1a; 使用ChatGPT构建一个Python配对交易机器人 …

车载系统的 加减串器应用示意

overview 车载系统上使用加减串器来实现camera&#xff0c; led液晶显示屏等 图像数据的远距离传输&#xff0c;将原先在短距离传输视频信号的mipi csi&#xff0c;dsi 等的TX&#xff0c;RX中间&#xff0c;插入加减串器&#xff0c;实现长距离的可靠传输。 示意图如下 往往…

认清新形势 适应新变化 明确新要求 九河云召开渠道合作沙龙座谈

为推动“聚势、合作、共赢”主题沙龙高质量开展&#xff0c;牢牢把握“守初心、担责任&#xff0c;找差距、抓落实”的总要求&#xff0c;按照九河有关部署和集团实施方案有关安排&#xff0c;连日来&#xff0c;九河云领导班子成员分别讲授专题培训&#xff0c;讲本心传递精神…

最新发布:中国移动建成全球运营商最大单体智算中心

4月28日&#xff0c;中国移动正式对外发布全球运营商最大单体智算中心——中国移动智算中心&#xff08;呼和浩特&#xff09;&#xff0c;目前已投产使用。 该智算中心填补了我国人工智能广泛应用所需算力的巨大缺口&#xff0c;快速赋能交通、医疗、教育、能源、金融等行业大…

图神经网络入门与实战:从图嵌入(GE)到图神经网络(GNN)

目录 一. 图的基本概念(Graph) 1.1 图的定义 1.2 图表示的基本概念 1.3 图的应用场景 1.4 图的分类 二. 图嵌入(Graph Embedding) 2.1 图嵌入的基本概念 2.2 图嵌入方法分类 2.3 图嵌入和图神经网络的区别 三. 图神经网络(Graph Neural Network) 3.1 图神经网络的基…

挑战一周完成Vue3项目Day2:路由配置+登录模块+layout组件+路由鉴权

一、路由配置 经过分析&#xff0c;项目一共需要4个一级路由&#xff1a;登录&#xff08;login&#xff09;、主页&#xff08;home&#xff09;、404、任意路由&#xff08;重定向到404&#xff09;。 1、安装路由插件 pnpm install vue-router 2、创建路由组件 在src目…

237基于matlab的偏振态仿真

基于matlab的偏振态仿真&#xff0c;不同偏振态下光强计算。本仿真软件可以仿真波片对偏振光的相位调制过程。用户可以通过改变波片的类型&#xff0c;波片长轴与 X 轴的夹角&#xff0c;起偏器透光与 X 轴的夹角&#xff0c;检偏器透光轴与 X 轴的夹角等参数&#xff0c;来观察…

服务器部署教程下(线下、线上部署)

1、线下部署 1.1 前端 首先将拉代码下来&#xff0c;cd到想启动项目的目录下(控制台 cd 文件夹名称) 比如 blog-v3(cd blog-v3)要在存在package.json文件的目录才能进行依赖下载、项目启动操作 检查一下自己的node版本是否为18级以上(node -v) 博客前台blog-v3使用vite4开发…

【介绍下IDM的实用功能】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

五•一颂|广州流辰信息致敬每一个辛勤的劳动者,祝大家五一快乐!

时光飞逝&#xff0c;一年一度的五一国际劳动节如期而至。在这个竞争激烈的社会中&#xff0c;拥有勤劳品质的人儿总会在适当的时机迎来人生的高光时刻。或许你的人生经历非常丰富&#xff0c;或顺利&#xff0c;或坎坷&#xff0c;不管是哪种状态&#xff0c;勤劳的人应该是这…

大核注意力 LKA | Visual Attention Network

论文名称&#xff1a;《Visual Attention Network》 论文地址&#xff1a;2202.09741 (arxiv.org) 尽管最初是为自然语言处理任务而设计的&#xff0c;但自注意力机制最近在各个计算机视觉领域迅速崭露头角。然而&#xff0c;图像的二维特性给计算机视觉中的自注意力应用带来了…

Polyscope,一款简洁的三维可视化工具!

Polyscope是用于三维数据&#xff08;如meshes、point clouds&#xff09;的可视化工具&#xff0c;通过编程或动态GUI完成&#xff1b;支持C和Python编程&#xff1b;追求“一行代码”为数据提供有用的可视界面展示。 下面来简单介绍Polyscope使用。 Polyscope效果 Point Cl…

【数据结构】最小生成树(Prim算法、Kruskal算法)解析+完整代码

5.1 最小生成树 定义 对一个带权连通无向图 G ( V , E ) G(V,E) G(V,E)&#xff0c;生成树不同&#xff0c;每棵树的权&#xff08;即树中所有边上的权值之和&#xff09;也可能不同。 设R为G的所有生成树的集合&#xff0c;若T为R中边的权值之和最小的生成树&#xff0c;则T称…

OpenMM——教程学习(1)

如何从零开始做一个蛋白小分子动力学模拟 AmberTools将被用来生成输入文件&#xff0c;OpenMM 将被用来运行模拟&#xff0c;模拟平台为在线百度AI Stuio, 并使用GPU加速。 First thing’s first, 到PDB 蛋白数据库下载一需要模拟的靶点晶体&#xff0c;备用。 1. H web server…

告别人工校对烦恼,Kompas AI智能纠错一键搞定

在快节奏的工作环境中&#xff0c;撰写和校对公文是必不可少的环节。然而&#xff0c;传统的人工校对方式既耗时又容易出错&#xff0c;严重影响了工作效率和公文质量。在这里&#xff0c;我想向大家分享一款专业的校对助手——Kompas AI。它是一款采用先进的自然语言处理技术的…

分享:怎么做老阳分享的选品师项目比较赚钱

在当今的商业环境中&#xff0c;选品师项目逐渐成为了一个炙手可热的创业选择。老阳作为业内知名的选品师&#xff0c;其分享的经验和方法对于想要入行或提升业绩的选品师来说&#xff0c;无疑是宝贵的财富。那么&#xff0c;如何才能做好老阳分享的选品师项目&#xff0c;实现…

ssm088基于JAVA的汽车售票网站abo+vue

汽车售票网站的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对汽车售票信息管理混乱&#xff0c;出错率…

【Camera KMD ISP SubSystem笔记】Request 流转与Bubble机制

ISP中断类型 SOF: 一帧图像数据开始传输 EOF: 一帧图像数据传输完成 REG_UPDATE: ISP寄存器更新完成(每个reg group都有独立的这个中断) EPOCH: ISP某一行结尾(默认20)就会产生此中断 BUFFER DONE: 一帧图像数据ISP完全写到DDR了 管理Isp request的几个List st…