qt中控件的使用函数

2023-11-17

1、Text Edit编辑框

//将编辑框中的内容转化成Utf8编码
ui->textEdit->toPlainText().toUtf8(); 

 

2、Combo Box下拉框的应用

(1)将内容加入下拉框中

ui->comboBox->addItem(ui->recvMulAddrEdit->text());

(2)删除下拉框中当前的内容

 ui->comboBox->removeItem(ui->recvMulAddr->currentIndex()); 

 

3、List Wiget

(1)实现双击

void QPlayer::on_listWidget_doubleClicked(const QModelIndex &index)//双击进入
{
    //"mplayer -slave -quiet -geometry x:y -zoom -x x -y y move.mp4"
    //http://192.168.1.248/move.mp4
    QString movepath = path+ui->listWidget->currentItem()->text(); //ui->listWidget->currentItem()->text() 取出当前光标双击的一行内容

    QString cmd = QString("mplayer -slave -quiet -geometry %1:%2 -zoom -x %3 -y %4 %5")
            .arg(QString::number(ui->label->x()))
            .arg(QString::number(ui->label->y()))
            .arg(QString::number(ui->label->width()))
            .arg(QString::number(ui->label->height()))
            .arg(movepath);

    if(mProcess->state() == QProcess::Running)
    {
        mProcess->kill();
        mProcess->waitForFinished();
    }else
    {
        mProcess->start(cmd);
    }

}

(2)获取当前点击内容的行号

int num = ui->listWidget->row(ui->listWidget->currentItem()); 

(3)建立文件缩小图标

QListWidgetItem *item = new QListWidgetItem(QIcon(fileDir),info.fileName());
ui->ListWidget->addItem(item); //往List Wiget里面添加项

(4)在List Widget列表中显示其他窗口信息

  Form *win = new Form(ui->listWidget); //这是一个子窗口,ui->listWidget把窗口对象放进ListWidget列表中
  QListWidgetItem *item = new QListWidgetItem();
  item->setSizeHint(win->size()); //每项的大小设置为win的大小
  ui->listWidget->addItem(item);
  ui->listWidget->setItemWidget(item,win); //

 

4、Label

(1)显示图片

第一种方法:

ui->label->setScaledContents(true);//显示图片的全部
ui->label->setPixmap(QPixmap(tempDir));//显示图片,tempDir是照片的绝对路径

第二种方法:

QPixmap mmp;
mmp.load("E:/GZ17-3/system/Qt-program/001/code/LoginWin/tst.png"); 
mmp = mmp.scaled(ui->label->size());
ui->label->setPixmap(mmp);

(2)播放视频,播放器是mplaer

void ProcessMplayer::on_listWidget_doubleClicked(const QModelIndex &index) //双击播放视频
{
    qDebug()<<ui->listWidget->currentItem()->text();
    QString cmd = "E:/GZ17-3/system/Qt-program/mplayer/mplayer.exe";
    //cmd.append(ui->listWidget->currentItem()->text());

    QStringList  argmList;
    argmList<<"-slave"; //从模式--通过命令控制
    argmList<<"-quiet"; //屏蔽解码信息输出
    argmList<<"-wid";//嵌入到界面上,后面接窗口ID
    argmList<<QString::number(ui->label->winId());
    argmList<<ui->listWidget->currentItem()->text();

    if(mProcess->state() == QProcess::Running)
    {
        mProcess->kill();
        mProcess->waitForFinished();
    }
    mProcess->start(cmd, argmList);
}

 (3)播放gif动态图

 QMovie *movie = new QMovie("../form/1.gif");  // "../form/1.gif"图片路径
 movie->start(); //开始播放动态图
 ui->label->setMovie(movie); //将图片设置为为动态
 ui->label->setScaledContents(true); //尽可能完整的播放整张动图 ,此处要设置为true

 (4)截屏

//截屏
QPixmap map = QApplication::screens().at(0)->grabWindow(0);
map.save("./screen.png"); //保存到当前目录下,名字为screen.png
QBuffer buffer; //图片暂时存储器
buffer.open(QIODevice::WriteOnly);
map.save(&buffer);
buffer.data();//得到QByteArray 对象可以转换为char*

//显示
map = map.scaled(ui->label->size()); //图片跟着屏幕的缩放
ui->label->setPixmap(map);

 

5、Check Box按键

ui->checkBox->setCheckState(Qt::Unchecked); //把按钮重新置于没有被选中的状态

 

6、Push Button按键

(1)排列出一个键盘

  //键盘数组
    QToolButton *buttons[12];
  //按钮初始化
    buttons[0] = ui->btn_value0;
    buttons[1] = ui->btn_value1;
    buttons[2] = ui->btn_value2;
    buttons[3] = ui->btn_value3;
    buttons[4] = ui->btn_value4;
    buttons[5] = ui->btn_value5;
    buttons[6] = ui->btn_value6;
    buttons[7] = ui->btn_value7;
    buttons[8] = ui->btn_value8;
    buttons[9] = ui->btn_value9;
    buttons[10] = ui->btn_Point;
    buttons[11] = ui->btn_delete;
 
 //所有按钮信号关联一个槽函数
    for(int i=0;i<12;i++)
    {
        connect(buttons[i],SIGNAL(clicked(bool)),this,SLOT(clicked_button()));
    }
    
//点击哪个按钮
void ArmInfo::clicked_button()
{
    //获取是哪个按钮点击(信号发送者)
    QToolButton *obj = (QToolButton*)sender();
    QString ip = ui->lineEdit_Amend->text();
    if(obj->text() == "<-") //检测是否点击删除按钮
    {
      ip.remove(ip.length()-1,1);//删除最后一个字符
    }

    else
    {
       ip.append(obj->text());//拼接字符串
    }
    ui->lineEdit_Amend->setText(ip);
}

 (2)设置按钮状态

ui->pushButton->setCheckable(true); //按一次就改变一次状态,比如说第一次按下时true那么第二次就是false
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(check(bool)));

(3)按钮按下和释放时切换图片

void MainWindow::on_pushButton_pressed() //按下按钮时
{
    ui->pushButton->setStyleSheet("border-image: url(:/new/prefix1/imag/人体炮弹.png);");
}

void MainWindow::on_pushButton_released() //释放按钮时
{
    ui->pushButton->setStyleSheet("border-image: url(:/new/prefix1/imag/atm.png);");
}

 

7、Line Edit输入框

 //垂直布局管理器
 QVBoxLayout *vbox = new QVBoxLayout(this);
 lineEdit = new QLineEdit(this); //定义一个lineEdit对象
 lineEdit->setMinimumHeight(60); //设置最小高度
 lineEdit->setAlignment(Qt::AlignRight); //设置输入框中右边对齐 

 

8、toolButton

(1)设置按钮的大小

//90为x轴,100为y轴,300为宽,400为高设置界面的大小
ui->toolButton->setGeometry(90,100,300,400); 

(2)设置图标

 //设置图标,../toolbar/icon.jpg 这是图片所在路径,要在源程序目录下
 ui->toolButton->setIcon(QIcon("../toolbar/icon.jpg"));
 解释:toolbar代码的路径,不是绝对路径 

 

9、action按钮绑定方法

connect(ui->action_New,SIGNAL(triggered(bool)),this,SLOT(doProcessNew())); //action按钮的绑定方法,这里和pushButton不同的时候触发为triggered(bool)

 

10、锁定背景图片,不让其他按钮随着背景图片一起变化

MainWindow{border-image: url(:/new/prefix1/imag/00958PICfNK.jpg);}
解释:MainWindow :显示背景的窗口名
      border-image:图片跟着边框一起变化
      /new/prefix1/imag/00958PICfNK.jpg:图片路径   

 

转载于:https://www.cnblogs.com/wurenzhong/p/8686059.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qt中控件的使用函数 的相关文章

  • typedef struct 用法详解

    typedef为C语言的关键字 作用是为一种数据类型定义一个新名字 当typedef与结构结合使用时 会有一些比较复杂的情况 而且在C语言和C 里面有略有差别 本文将详细讲解typedef struct的用法 第一篇 typedef str
  • 无法打开源文件<sys/time.h>,但是用time.h编译就会出错,缺少gettimeofday()

    因为sys time h是uinx系统下的库文件 而现在使用的平台是在windows 由于未指明程序运行的系统 导致找不到对应的头文件 需要重新实现gettimeofday 函数 define WIN32 include
  • 【C++】VS code如何配置使用C++(手把手教学)

    博 主 米码收割机 技 能 C Python语言 公众号 测试开发自动化 获取源码 商业合作 荣 誉 阿里云博客专家博主 51CTO技术博主 专 注 专注主流机器人 人工智能等相关领域的开发 测试技术 VS code如何配置使用C 手把手教
  • 经典面试题之new和malloc的区别

    new和malloc的区别是C C 一道经典的面试题 我也遇到过几次 回答的都不是很好 今天特意整理了一下 0 属性 new delete是C 关键字 需要编译器支持 malloc free是库函数 需要头文件支持 1 参数 使用new操作
  • 使用lattice包的bwplot函数绘制箱图比较多个模型在不同指标上的性能差异(R语言)

    使用lattice包的bwplot函数绘制箱图比较多个模型在不同指标上的性能差异 R语言 箱图是一种常用的数据可视化方法 用于表示一组数据的分布特征 包括中位数 四分位数 异常值等 在比较多个模型在多个指标上的性能差异时 箱图可以提供直观的
  • 如何学好C语言的数据结构与算法?

    C语言的数据结构与算法 难就难在链表 学会了链表 可能后面就一点都不难了 书籍推荐 数据结构与算法分析 C语言描述版 要深入学习的话可以选择这本书 因为针对链表的讲解是比较详细的 所以可以很快理解链表 跟着书上一点点实现基本操作 增删改查
  • Coding and Paper Letter(六十一)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 资源整理 1 Coding 1 航拍影像的土地覆盖分类 CAS机器学习人工智能2019 ZHAW 中ML DL分配的仓库 ml dl assignment 2019 2 跨
  • BP学习算法-构建三层神经网络

    引 人工神经网络 Artificial Neural Networks 简写为ANNs 也简称为神经网络 NNs 或称作连接模型 Connection Model 是一种模仿动物神经网络行为特征 进行分布式并行信息处理的算法数学模型 这种网
  • dev-c++官网位置和源码/库位置

    1 http devpaks org 2 http www bloodshed net 3 http www bloodshed net dev 转载于 https www cnblogs com vilyLei articles 1812
  • c语言判断一个数是否为偶数

    include
  • R语言读取Excel的神器——openxlsx

    作为非程序猿的各位同志们 可能最擅长的数据整理软件或者统计软件就是 嗯 没有错 它就是集万千宠爱于一身的E X O 咳咳咳 好了 隆重推出我们的主角 Excel 事实上 Excel是个super强大的软件 基本上用它已经能完成大量的统计分析
  • Dev-C++之开启装逼效果

    Dev C 是个不错的C IDE 在10年前 它是很不错 在现在 它是个以界面丑陋和调试像吃粑粑这两点著称 如下图 实在是丑到离谱 丑到无法忍受 可是没办法呀 人家CCF规定比赛用这个 你个小蒟蒻吵什么 我现在就来讲讲怎么把你的Dev C
  • 在聚会中常玩数七的游戏,七的倍数和带有七的数字都不能说,比如14,27,28。请找出1~100的不能说的数字。...

    利用ES5的filter高阶函数来实现 var arr 1 2 3 4 5 6 7 17 27 21 22 28 100 r arr filter function x return x 10 7 x 7 0 alert r 7 14 17
  • C++学习笔记12:输入输出流实例整理(文本文件读写,二进制文件读写,一组数据的文件读写,随机访问文件实例

    这也太难记了555老阔疼 文件读写示例 include
  • R语言与多元线性回归方程及各种检验

    R语言与多元线性回归方程及各种检验 文章目录 R语言与多元线性回归方程及各种检验 一 模型建立 二 多重共线性 1 产生的背景 2 多重共线性的检验 1 简单相关系数法 2 方差膨胀因子 vif 法 3 矩阵 X T X
  • 主成分分析R语言实现

    主成分分析是一种常见的降维统计方法 它通过适当的变量替换 使得新变量成为原变量的线性组合 并且新变量间彼此独立 从而可从错综复杂的关系中寻求主要成分信息 揭示变量内在关系 本次主要分享的是该方法的R语言实现 目录 数据集展示 一 计算相关系
  • 检查内存泄露

    自己编写的视频处理程序出现了一个问题 每帧的运行时间随着运行时间在不断增长 很大可能是出现了内存泄露 于是学习了一些查看内存泄露的方法 做了两种尝试 一是VS自带的DEBUG下的检测 view pl html view plain copy
  • 【C++】运算符重载

    加号运算符重载 include
  • C 语言运算符详解

    C 语言中的运算符 运算符用于对变量和值进行操作 在下面的示例中 我们使用 运算符将两个值相加 int myNum 100 50 虽然 运算符通常用于将两个值相加 就像上面的示例一样 它还可以用于将变量和值相加 或者将变量和另一个变量相加
  • C中的内存使用问题

    请帮忙 操作系统 Linux 其中 sleep 1000 中 此时 top 显示Linux任务 给我写了7 7 MEM使用 valgrind 未发现内存泄漏 我明白 写得正确 所有 malloc 结果都是 NULL 但是为什么这次 睡眠 我

随机推荐

  • compose配置文件参数详解

    本文介绍compose配置文件参数的使用 熟练编写compose文件 root docker lnmp cat lnmp yaml version 3 services nginx build root docker demo nginx
  • js之forEach怎么跳出循环

    第一种 跳出此次循环 1 2 3 4 5 6 forEach e gt if e 2 return false console log e 第二种 中断循环 1 2 3 4 5 6 forEach e gt if e 2 throw 抛出异
  • Elasticsearch入门

    下载地址 Download Elasticsearch Elastic 浏览器查看启动情况 出现一下内容说明服务已启动 如果启动成功无法访问 打开如图文件 将xpack security enabled 和xpack security ht
  • 详解mybatis的配置setMapperLocations多个路径两种方法

    文章目录 一 配置文件方式 二 Javabean配置 前言 我们在平常工作中用到mybatis去加载Mapper xml文件 可能mapper文件放的路径不一样 由此我们需要配置多个路径 幸运的是Mybatis支持我们配置多个不同路径 现在
  • Systick_Handler B.卡死处理方法

    Systick Handler B 卡死处理方法 注 鄙人在学习国产GD32芯片和STM32芯片做嵌入式时候出现过单片机卡死在 s启动文件Systick Handler B 处 现做系列总结 文章目录 1 中断开启未处理 2 引入C C 代
  • CentOS7.5离线安装jdk1.8

    目录 前言 一 环境准备 1 1 CentOS的安装 1 2 安装前检查是否有残余JDK 二 安装配置JDK 2 1 安装 2 2 修改配置文件 2 3 修改文件夹名称和脚本对应上 正常不需要操作 该步骤是方便以后部署使用脚本 前言 由于每
  • k8s笔记25--k8s 跨主机网络flannel

    k8s笔记25 k8s 跨主机网络flannel 简介 不同机器上网络设备区别 flannel 网络常见三大后端模式 UDP VXLAN host gw 如何查看集群用哪种网络模式 阿里云flannel容器网络 alloc 参考文档 简介
  • 解决IDEA中:Error running Tomcat8: Address localhost:1099 is already in use

    今天在运行Web项目的时候 突然运行不起来 最后报Error running Tomcat8 Address localhost 1099 is already in use 从而致web项目无法运行 看了一下原来是1099端口被占用 解决
  • PyTorch3D 安装记录

    1 PyTorch 安装 PyTorch 官网 PyTorch 官网 最新版本的 PyTorch 最新版本的 PyTorch 以 cuda 11 3 Python 3 9 Pytorch 1 12 1 为例 conda 安装 conda i
  • 端口重复处理

    不废话上代码之 端口重复处理 Description Web server failed to start Port 8080 was already in use Action Identify and stop the process
  • fragment嵌套viewpager嵌套fragment第二次加载数据不显示问题

    这几天做项目遇到一个问题 就是有这么一个页面是activity嵌套一个fragment1然后fragment1里放了一个viewpager viewpager里放了几个fragment 本来只有这么一个页面 显示出来也没什么问题 现在加新需
  • [架构之路-207]- 人人都是产品经理 - 常见的需求分析技术:实用的需求分析与建模详解过程(实操性强)

    目录 1 1 需求分析建模的要点与误区 1 1 1 需求分析到底做什么 1 1 1 1 分解的方法 1 1 1 2 提炼 合并 重组 1 1 1 3 消除矛盾 1 1 2 建模的目标和要点 1 1 2 1 建模的目的 1 1 2 2 建模的
  • 请问肾阴虚吃什么药?饮食注意什么?还有桂附地黄丸是治肾阴虚还是治肾阳虚的?谢谢

    如果确属肾阴虚当用 六味地黄丸 但肾阴虚那么多的特征里 最为明显的就是 夜间盗汗 如果不能确定 还是改用 桂附地黄丸 在 六味 的基础上加了 肉桂 与 附子 两味温药 作用就是在滋阴的基础上 温补肾阳 适宜平补 即 阴阳双补 最适宜服用的季
  • 揭秘区块链的核心技术之「哈希与加密算法 」

    大家都知道 区块链的关键技术组成主要为 P2P网络协议 共识机制 密码学技术 账户与存储模型 而这些技术中 又以 密码学与共识机制 这两点为最核心 那么今天我们来详细的聊一聊密码学 看一看密码学技术是如何在区块链中应用的 首先 我们需知道区
  • 完整版彻底卸载SQL Server2019

    首先我是因为SQL Server2019突然出现了一些问题然后重新安装了 简直被这个软件整的没脾气 希望我写的这个能帮助曾经和我一样被SQL Server卸载折磨得要疯的人 我是总结了很多前辈写的 然后重新安装SQL Server成功了 希
  • javase学习笔记

    01 01 计算机基础知识 计算机概述 了解 A 什么是计算机 计算机在生活中的应用举例 计算机 Computer 全称 电子计算机 俗称电脑 是一种能够按照程序运行 自动 高速处理海量数据的现代化智能电子设备 由硬件和软件所组成 没有安装
  • jdk8源码之Queue-ArrayQueue

    关于队列这个数据结构 大家应该都是比较熟悉 列队是一种先进先出 FIFO 的数据结构 删除操作只能在表的头部 插入操作只能在表的尾部 Queue一般是作为一个缓冲队列使用的 简单举例 生产端的生产速度偶尔会大于消费端的消费速度 但又不想等待
  • OOP面向对象(继承,方法重写/覆盖,多态,instanceof运算符)2021-07-19java学习日记

    7 19java学习日记 7 19日 java基础p 436 p460 学习时间 7 小时 关键词 OOP extends继承 方法覆盖 重写 多态 运算符instanceof 面向对象中的继承 extends 只可以继承一个类 不支持多继
  • 让 Notion AI 介绍 Notion AI

    Notion AI 是一种新型的人工智能技术 它可以帮助我们更好地管理和组织信息 并提高工作效率 Notion AI 结合了自然语言处理和机器学习技术 可以自动识别和分类文本 图像和音频等多种形式的信息 帮助我们更快地找到所需的信息 除了以
  • qt中控件的使用函数

    1 Text Edit编辑框 将编辑框中的内容转化成Utf8编码 ui gt textEdit gt toPlainText toUtf8 2 Combo Box下拉框的应用 1 将内容加入下拉框中 ui gt comboBox gt ad