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

news/2024/9/23 14:35:27/

qtCQSliderQProgressBar_0">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 guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += 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.0SOURCES += \main.cpp \widget.cppHEADERS += \widget.hFORMS += \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_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic: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)
{//textVisibleui->progressBar->setTextVisible(checked);
}void Widget::on_chkBox_Inverted_clicked(bool checked)
{//InvertedAppearanceui->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.ppmy.cn/news/1449301.html

相关文章

链表面试题2

1&#xff0c;合并两个有序链表 我们先定义一个虚拟节点newH&#xff0c; 然后按照上图所走&#xff0c;但是当其中一个链表走空时&#xff0c;我们只需返回另一个链表即可 class Solution {public ListNode mergeTwoLists(ListNode headA, ListNode headB) {ListNode newhead…

帕金森患者应该怎么注意生活方式?

在面对帕金森病的挑战时&#xff0c;科学合理地改善日常生活方式&#xff0c;不仅能帮助患者更好地管理病情&#xff0c;还能提升生活质量。今天&#xff0c;让我们一起探索如何通过简单的日常调整&#xff0c;为患有帕金森病的朋友们带来积极的变化。 饮食调整&#xff1a;营养…

制作一个RISC-V的操作系统十五-软件定时器

文章目录 定时器分类定时器相关分类软件定时器设计初始化创建删除触发流程图形示意 优化代码 定时器分类 硬件定时器&#xff1a;由硬件频率和触发限制的大小决定&#xff0c;只有一个&#xff0c;精度高 软件定时器&#xff1a;基于硬件定时器实现&#xff0c;精度大于等于硬…

indexedDB---浏览器内建的数据库(学习记录)

IndexedDB IndexedDB 是一个浏览器内建的数据库&#xff0c;它比 localStorage 强大得多。 通过支持多种类型的键&#xff0c;来存储几乎可以是任何类型的值。支撑事务的可靠性。支持键值范围查询、索引。和 localStorage 相比&#xff0c;它可以存储更大的数据量。 要注意的…

Ubuntu20.04 [Ros Noetic]版本——在catkin_make编译时出现报错的解决方案

今天在新的笔记本电脑上进行catkin_make的编译过程中遇到了报错&#xff0c;这个报错在之前也遇到过&#xff0c;但是&#xff0c;我却忘了怎么解决。很是头痛&#xff01; 经过多篇博客的查询&#xff0c;特此解决了这个编译报错的问题&#xff0c;于此特地记录&#xff01;&…

Unity LensFlare 入门

概述 在项目的制作过程中&#xff0c;太阳光的使用一定是不可缺少的部分&#xff0c;但是如果想实现真实太阳光眼睛看到的镜头炫光效果&#xff0c;那这部分的内容一定不要错过喔&#xff0c;接下来让我们来学习这部分的内容吧&#xff01; Hale(光环效果) Color&#xff1a;…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.5--I.MX6U启动方式

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

Java零基础入门到精通_Day 9

1.ArrayList 编程的时候如果要存储多个数据&#xff0c;使用长度固定的数组存储格式&#xff0c;不一定满足我们的需求&#xff0c;更适应不了变化的需求&#xff0c;那么&#xff0c;此时该如何选择呢? 集 合 集合类的特点:提供一种存储空间可变的存储模型&#xff0c;存储的…