qt-13 进度条(模态和非模态)

news2024/12/25 2:00:12

进度条-模态和非模态

  • progressdlg.h
  • progressdlg.cpp
  • main.cpp
  • 运行图
    • 模态
    • 非模态

progressdlg.h

#ifndef PROGRESSDLG_H
#define PROGRESSDLG_H

#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QProgressBar>
#include <QComboBox>
#include <QPushButton>
#include <QGridLayout>

class progressDlg : public QDialog
{
    Q_OBJECT

public:
    progressDlg(QWidget *parent = nullptr);
    ~progressDlg();
private slots:
    void StartProgress();
private:
    QLabel* FileNum;
    QLineEdit* FileNumLineEdit;
    QLabel* ProgressType;
    QComboBox* ComboBox;
    QProgressBar* ProgressBar;
    QPushButton* StartBtn;
    QGridLayout* MainLayout;
};
#endif // PROGRESSDLG_H

progressdlg.cpp

#include "progressdlg.h"
#include <QProgressDialog>
#include <QFont>
progressDlg::progressDlg(QWidget *parent)
    : QDialog(parent)
{
    //实例化对象以及配置
    QFont font("ZYsong18030",12);
    setFont(font);
    setWindowTitle(tr("Progress"));
    FileNum = new QLabel(tr("文件数目"));
    FileNumLineEdit = new QLineEdit(tr("100000"));
    ProgressType = new QLabel("显示类型:");
    ComboBox = new QComboBox;
    ComboBox->addItem(tr("progressbar"));
    ComboBox->addItem(tr("progressDialog"));
    ProgressBar = new QProgressBar;
    StartBtn = new QPushButton(tr("开始"));
    //布局
    MainLayout = new QGridLayout(this);
    MainLayout->setMargin(15);
    MainLayout->setSpacing(10);
    MainLayout->addWidget(FileNum,0,0);
    MainLayout->addWidget(FileNumLineEdit,0,1);
    MainLayout->addWidget(ProgressType,1,0);
    MainLayout->addWidget(ComboBox,1,1);
    MainLayout->addWidget(ProgressBar,2,0,1,2);
    MainLayout->addWidget(StartBtn,3,1);
    //绑定事件
    connect(StartBtn,SIGNAL(clicked()),this,SLOT(StartProgress()));


}

progressDlg::~progressDlg() {}

void progressDlg::StartProgress()
{
    bool Ok;
    int nNum = FileNumLineEdit->text().toInt(&Ok);
    if(ComboBox->currentIndex() ==0)
    {

        ProgressBar->setRange(0,nNum);
        nNum++;
        for(int i=0;i<nNum;i++)
        {
          ProgressBar->setValue(i);
        }
    }
    else if(ComboBox->currentIndex() == 1)
    {
        //创建一个进度对话框
        QProgressDialog* ProgressDialog = new QProgressDialog(this);
        QFont font("ZYSong18030",12);
        ProgressDialog->setFont(font);
        ProgressDialog->setWindowModality(Qt::WindowModal);
        ProgressDialog->setMinimumDuration(5);
        ProgressDialog->setWindowTitle(tr("please wait"));
        ProgressDialog->setLabelText(tr("Copy....."));
        ProgressDialog->setCancelButtonText(tr("cancel"));
        ProgressDialog->setRange(0,nNum);
        nNum++;

        for(int i =0;i<nNum;i++)
        {
            ProgressDialog->setValue(i);
            if(ProgressDialog->wasCanceled())
            {
                return;
            }
        }

    }


}

main.cpp

#include "progressdlg.h"

#include <QApplication>

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

运行图

模态

在这里插入图片描述

非模态

在这里插入图片描述

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

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

相关文章

闲鱼卖1000元的带腾讯备案的 gaapqcloud.com.cn 域名低成本获取方法!

最近在闲鱼看到有人卖域名&#xff0c;声称是腾讯的备案&#xff0c;还卖1000多元&#xff01;逆天了&#xff01;这个信息差是真能割韭菜&#xff0c;我一查&#xff0c;这不就是腾讯云的全球应用加速域名吗&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;这样…

嵌入式day30

管道 --- 半双工通信方式 单工 //广播 --- 单一方向的数据通道 半双工 //对讲机 --- 同一时刻 只能有一个方向 全双工 //手机电话 --- 同一时刻两个方向都可以通信 无名管道 只能用于 亲缘关系进程间 有名管道 是一种特殊的文件 1.存在于 内…

GNN(一)

一、GNN应用领域 芯片设计 场景分析与问题推理 道路交通&#xff0c;动态流量预测 知识图谱 化学医疗等场景 物理模型相关 二、图的基本组成 利用神经网络的目的就是整合特征 图的邻接矩阵 每个像素点周围都有邻居 GAN中数据格式不固定&#xff0c;例如社交网络中人物关…

Processing练习之自动绘制

案例代码如下&#xff1a; import processing.pdf.*; import java.util.Calendar; boolean savePDF false; int maxCount 5000; int currentCount 1; float[] xnew float[maxCount]; float[] ynew float[maxCount]; float[] rnew float[maxCount]; void setup(){ siz…

可视化工具VOFA数据格式介绍

目录 概述 1 认识VOFA 1.1 VOFA特点 1.2 应用简介 2 数据格式介绍 2.1 FireWater格式 2.2 JustFloat格式 概述 本文主要介绍使用可视化工具VOFA打印数据的方法&#xff0c;该工具可以支持字符串类型和float类型的数据可视化操作&#xff0c;使用者只需按照协议要求填充数…

C++ stack、queue、priority_queue【介绍、常用接口、模拟实现】

0.容器适配器 0.1什么是适配器 适配器是一种设计模式&#xff0c;该种模式是将一个类的接口转换成客户希望的另外一个接口。 0.2 STL标准库中stack和queue的底层结构 虽然stack和queue中也可以存放元素&#xff0c;但在STL中并没有将其划分在容器的行列&#xff0c;而是将其…

RabbitMQ 消息可靠保障

RabbitMQ 消息可靠保障 消息的可靠性保证生产端到交换机和队列的可靠性保障解决思路A-确认机制解决思路B-备份交换机 MQ 服务器宕机导致消息丢失消费端消息的可靠性保障 消费端限流 消息的可靠性保证 实际项目中 MQ 的流程一般是&#xff1a;生产端把消息路由到交换机&#xf…

树 状 数 组

可差分信息&#xff1a;如果知道部分的信息&#xff0c;用整体的信息和部分的信息就可以求出剩余部分的信息&#xff0c;那么这个信息是可差分的 P3374 【模板】树状数组 1 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include <iostream> #include <vector> u…

【微信小程序】微信小程序开发前的准备

在正式开发微信小程序之前&#xff0c;需要先进行开发前的准备工作&#xff0c;包括&#xff1a; 注册微信小程序开发账号获取微信小程序AppID安装微信开发者工具创建微信小程序项目 一、注册微信小程序开发账号 1. 点击注册按钮 使用浏览器打开 https://mp.weixin.qq.com/…

铁电存储器(FM24W256)I2C读写驱动(3):基于HAL库实现硬件I2C读写

0 参考资料 FM24W256&#xff08;Cypress公司生产&#xff09;数据手册 1 基于HAL库实现硬件I2C读写 1.1 硬件I2C初始化 FM24W256支持最高1MHz的I2C频率&#xff0c;本例也配置为1MHz&#xff0c;相关初始化代码如下&#xff1a; /*** brief 使用硬件I2C的E2P初始化** retur…

【Linux】yum、vim、gcc/g++的使用

目录 一、Linux 软件包管理器 yum 什么是软件包 关于 rzsz 查看软件包★ 如何安装软件★ 如何卸载软件★ Linux 开发工具 二、Linux编译器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 vim操作总结 如果在vim界面不小心按了Ctrl …

[Meachines] [Medium] solidstate Apache JAMES RCE+POP3邮件泄露+定时任务权限提升

信息收集 IP AddressOpening Ports10.10.10.51TCP:22&#xff0c;25&#xff0c;80&#xff0c;110&#xff0c;119&#xff0c;4555 $ nmap -p- 10.10.10.51 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.4p1 Debian 10deb9u…

Processing练习之变换颜色

案例代码如下&#xff1a; import generativedesign.*; import processing.pdf.*; import java.util.Calendar; boolean savePDFfalse; int tileCountX 2; //jianbianshuliang int tileCountY10;//hangshu color[] colorsLeft new color[tileCountY]; color[] colorsRightne…

管道与信号量

一、基本知识 1、管道&#xff0c;是特殊的文件&#xff08;基于内核&#xff08;内存&#xff09;上创建&#xff09;&#xff1b;以前的文件是在硬盘上创建。 2、工作方向 单工&#xff1a;数据方向单一&#xff0c;广播 半双工&#xff1a;同一时刻只能有一个方向&#…

算法【Java】 —— 滑动窗口

滑动窗口 在上一篇文章中&#xff0c;我们了解到了双指针算法&#xff0c;在双指针算法中我们知道了前后指针法&#xff0c;这篇文章就要提到前后指针法的一个经典的使用 —— 滑动窗口&#xff0c;在前后指针法中&#xff0c;我们知道一个指针在前&#xff0c;一个指针在后&a…

Page与自定义Components生命周期

自定义组件 自定义组件一般可以用@component,装饰,在结构体里面用build方法定义UI,或者用@builder装饰一个方法,来作为自定义组件的构造方法 而页面page一般用@Entry,和@component结合起来使用 页面生命周期方法: onPageShow:页面每次显示时触发 onPageHide:页面每次隐藏时…

【LeetCode每日一题】——662.二叉树最大宽度

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 广度优先搜索 二【题目难度】 中等 三【题目编号】 662.二叉树最大宽度 四【题目描述】 给…

《python语言程序设计》2018版第7章第05题几何:正n边形,一个正n边形的边都有同样的长度。角度同样 设计RegularPolygon类

结果和代码 这里只涉及一个办法 方法部分 def main():rX, rY eval(input("Enter regular polygon x and y axis:"))regular_num eval(input("Enter regular number: "))side_long eval(input("Enter side number: "))a exCode07.RegularPol…

C++入门——01类与对象

1.类 1.1.类的引入 C语言中&#xff0c;结构体中只能定义变量&#xff0c;在C中&#xff0c;结构体内不仅可以定义变量&#xff0c;也可以定义函数。 struct Student {void SetStudentInfo(const char* name, const char* gender, int age){strcpy(_name, name);strcpy(_gen…