Qt系列-常用控件使用整理

1、QMainWindow介绍
菜单栏最多只有一个

    //菜单栏创建 菜单栏最多只能有一个QMenuBar*bar = menuBar();//将菜单栏放入到窗口中setMenuBar(bar);//创键菜单QMenu*fileMenu=bar->addMenu("文件");QMenu*editMenu=bar->addMenu("编辑");//创建菜单项QAction*newAction=fileMenu->addAction("新建");//添加分割线fileMenu->addSeparator();QAction*openAction=fileMenu->addAction("打开");


2、工具栏及状态栏介绍
工具栏可以有多个,状态栏只能有一个

//工具栏 可以有多个QToolBar*toolBar=new QToolBar(this);addToolBar(Qt::LeftToolBarArea,toolBar);//后期设置 只允许 左右停靠toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);//设置浮动toolBar->setFloatable(false);//设置移动(总开关)//   toolBar->setMovable(false);//工具栏中可以设置内容toolBar->addAction(newAction);toolBar->addSeparator();toolBar->addAction(openAction);//工具栏中添加控件QPushButton*btn=new QPushButton("aa",this);toolBar->addWidget(btn);//状态栏 最多有一个QStatusBar*stBar=statusBar();//设置到窗口中setStatusBar(stBar);


3、柳接部件、浮动窗口及核心部件介绍
铆接部件 浮动窗口 可以多个
设置核心部件 只能一个
 

    //放置标签控件QLabel*label=new QLabel("提示信息",this);stBar->addWidget(label);QLabel*label2=new QLabel("提示信息",this);stBar->addPermanentWidget(label2);//铆接部件(浮动窗口)可以有多个QDockWidget*dockWidget=new QDockWidget("浮动",this);addDockWidget(Qt::BottomDockWidgetArea,dockWidget);//设置后期停靠区域,只允许上下dockWidget->setAllowedAreas(Qt::TopDockWidgetArea|Qt::BottomDockWidgetArea);//设置中心部件,只能有一个QTextEdit*edit=new QTextEdit(this);setCentralWidget(edit);


4、资源文件添加及图片应用
具体步骤:

将图片文件 拷贝到项目位置下
右键项目->添加新文件 –> Qt - > Qt recourse File - >给资源文件起名 res 生成 res.qrc
open in editor 编辑资源
添加前缀 添加文件
使用 “ : + 前缀名 + 文件名 ”

//    ui->actionnew->setIcon(QIcon("C:\\Users\\Administrator\\Desktop\\day2资料\\Doc\\Image\\Luffy.png"));//使用添加Qt资源":+前缀名+文件名"ui->actionnew->setIcon(QIcon(":/Image/Luffy.png"));ui->actionopen->setIcon(QIcon(":/Image/LuffyQ.png"));



5、对话框介绍
对话框也分模态对话框和非模态对话框

模态对话框 不可以对其他窗口进行操作 会出现阻塞(即要先处理了对话框之后才能处理别处)

QDialog dlg(this) ;dlg.exec();


非模态对话框 可以对其他窗口进行操作但会一闪而过,因此要创建到堆区中

QDialog * dlg2 = newQDialog(this);
dlg2->show();
dlg2->setAttribute(Qt::WA_DeleteOnClose);
//模态创建 阻塞
//       QDialog dlg(this);
//       dlg.resize(200,100);
//       dlg.exec();
//       qDebug()<<"模态创建";//非模态创建QDialog*dlg2=new QDialog(this);dlg2->resize(200,100);dlg2->show();dlg2->setAttribute(Qt::WA_DeleteOnClose);//55号 属性qDebug()<<"非模态创建";


6、消息对话框
QMessageBox 静态成员函数 创建对话框(错误、信息、提问、警告)
提问对话框中函数参数:
 

//参数1 父亲 参数2 标题 参数3 显示内容 参数4 按键类型 参数5 默认关联回车按键
//QMessageBox::critical(this,"critical","错误");
//信息对话框
//        QMessageBox::information(this,"info","信息");
//提问对话框
//参数1 父亲  参数2 标题 参数3 提示内容 参数4 按键类型 参数5 默认关键回车按键
if(QMessageBox::Save==QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel)){qDebug()<<"选择的是保存";}else{qDebug()<<"选择的是取消";}

7、警告对话框
  QMessageBox::warning(this,"warning","警告");

8、颜色对话框

//        QColor color=QColorDialog::getColor(QColor(255,0,0));
//        qDebug()<<"r="<<color.red()<<"g="<<color.green()<<"b="<<color.blue();//        //文件对话框 参数1 父亲 餐数2 标题 参数3 默认打开路径 参数4 过滤文件格式
//        //返回值 选取的路径
//        QString str= QFileDialog::getOpenFileName(this,"图片","C:\\Users\\Administrator\\Desktop\\day2资料\\Doc\\Image",".png");
//        qDebug()<<str;

9、字体对话框
       

bool flag;
QFont font=QFontDialog::getFont(&flag,QFont("华文彩云",36));
qDebug()<<"字体:"<<font.family()<<"字号:"<<font.pointSize()<<"是否加粗:"<<font.bold() <<"是否倾斜:"<<font.italic();


10、QTreeWidget 树控件

  • 设置头 ui->treeWidget->setHeaderLabels(QStringList()<< “英雄”<< “英雄介绍”);
  • 创建根节点 QTreeWidgetItem * liItem = new QTreeWidgetItem(QStringList()<< “力量”);
  • 添加根节点 到 树控件上 ui->treeWidget->addTopLevelItem(liItem);
  • 添加子节点 liItem->addChild(l1);
//设置水平头ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");QTreeWidgetItem*liItem=new QTreeWidgetItem(QStringList()<<"力量");QTreeWidgetItem*minItem=new QTreeWidgetItem(QStringList()<<"敏捷");QTreeWidgetItem*zhiItem=new QTreeWidgetItem(QStringList()<<"智力");//加载顶层的节点ui->treeWidget->addTopLevelItem(liItem);ui->treeWidget->addTopLevelItem(minItem);ui->treeWidget->addTopLevelItem(zhiItem);//追加子节点QStringList heroL1;QStringList heroL2;heroL1 << "刚被猪" << "前排坦克,能在吸收伤害的同时造成可观的范围输出";heroL2 << "船长" << "前排坦克,能肉能输出能控场的全能英雄";QStringList heroM1;QStringList heroM2;heroM1 << "月骑" << "中排物理输出,可以使用分裂利刃攻击多个目标";heroM2 << "小鱼人" << "前排战士,擅长偷取敌人的属性来增强自身战力";QStringList heroZ1;QStringList heroZ2;heroZ1 << "死灵法师" << "前排法师坦克,魔法抗性较高,拥有治疗技能";heroZ2 << "巫医" << "后排辅助法师,可以使用奇特的巫术诅咒敌人与治疗队友";QTreeWidgetItem*l1=new QTreeWidgetItem(heroL1);QTreeWidgetItem*l2=new QTreeWidgetItem(heroL2);liItem->addChild(l1);liItem->addChild(l2);QTreeWidgetItem*m1=new QTreeWidgetItem(heroM1);QTreeWidgetItem*m2=new QTreeWidgetItem(heroM2);minItem->addChild(m1);minItem->addChild(m2);QTreeWidgetItem*z1=new QTreeWidgetItem(heroZ1);QTreeWidgetItem*z2=new QTreeWidgetItem(heroZ2);zhiItem->addChild(z1);zhiItem->addChild(z2);

3、QTableWidget 表格控件

  • 设置列数 ui->tableWidget->setColumnCount(3);
  • 设置水平表头 ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<“姓名”<< “性别”<< “年龄”);
  • 设置行数 ui->tableWidget->setRowCount(5);
  • 设置正文 ui->tableWidget->setItem(0,0, new QTableWidgetItem(“亚瑟”));

 

  //设置列数ui->tableWidget->setColumnCount(3);//设置水平表头ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");//设置行数ui->tableWidget->setRowCount(5);//设置正文
//    ui->tableWidget->setItem(0,0,new QTableWidgetItem("亚瑟"));QStringList nameList;nameList<<"亚瑟"<<"赵云"<<"张飞"<<"关羽"<<"花木兰";QList<QString>sexList;sexList<<"男"<<"男"<<"男"<<"女";for(int i=0;i<5;i++){int col=0;ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList.at(1)));//int转strinui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));}

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

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

相关文章

设计模式之六大设计原则

为什么要学习设计模式&#xff1f; 要知道设计模式就是软件工程的方法经验的总结&#xff0c;也是可以认为是过去一段时间软件工程的一个最佳实践&#xff0c;要理解&#xff0c;不要死记硬背。掌握这些方法后&#xff0c;可以让你的程序获得以下好处&#xff1a; 代码重用性…

【LeetCode】38. 外观数列

1 问题 给定一个正整数 n &#xff0c;输出外观数列的第 n 项。 「外观数列」是一个整数序列&#xff0c;从数字 1 开始&#xff0c;序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列&#xff1a; countAndSay(1) “1” countAndSay(n…

kali使用docker安装DVWA

上一篇文章我记录了如何使用kali安装DVWA&#xff0c;但是我是一个一个组件安装的&#xff0c;非常麻烦&#xff0c;比如数据库还需要配置&#xff0c;花费时间很多。昨天在逛github时&#xff0c;发现大佬的靶场都是通过docker打包好的&#xff0c;如果我也用docker安装DVWA&a…

4.4 网际控制报文协议ICMP

思维导图&#xff1a; 4.4 网际控制报文协议ICMP - 笔记 --- **定义**: - 网际控制报文协议ICMP(Internet Control Message Protocol)是根据[RFC 792]定义的一种协议。它的主要功能是为了提高IP数据报的转发效率和确保交付的成功率。 **主要功能**: 1. **差错报告**: ICMP允…

阿里云starrocks监控告发至钉钉群

背景&#xff1a;新入职一家公司&#xff0c;现场没有对sr的进行监控&#xff0c;根据开发的需求编写了一个python脚本。 脚本逻辑&#xff1a;抓取sr的be/fe/routine load状态信息&#xff0c;判读是否触发告警&#xff0c;若满足告警条件&#xff0c;则发送告警信息到钉钉群…

二维码智慧门牌管理系统:确保数据准确,强制校验GPS信号强度

文章目录 前言一、数据采集多种方式二、提高工作效率与管理效率 前言 在快速发展的科技时代&#xff0c;我们推出了一款最新的门牌系统解决方案——二维码智慧门牌。这款门牌不仅具备高效的管理功能&#xff0c;还为入口管理提供全新的智慧化解决方案。 一、数据采集多种方式 …

【Arduino TFT】 记录使用DMA优化TFT屏帧率

忘记过去&#xff0c;超越自己 ❤️ 博客主页 单片机菜鸟哥&#xff0c;一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-10-18 ❤️❤️ 本篇更新记录 2023-10-18 ❤️&#x1f389; 欢迎关注 &#x1f50e;点赞 &#x1f44d;收藏 ⭐️留言&#x1f4dd;&#x1f64…

【马蹄集】—— 概率论专题

概率论专题 目录 MT2226 抽奖概率MT2227 饿饿&#xff01;饭饭&#xff01;MT2228 甜甜花的研究MT2229 赌石MT2230 square MT2226 抽奖概率 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目描述 小码哥正在进行抽奖&#xff0c;箱子里有…

Transformer模型 | Transformer模型描述

谷歌推出的BERT模型在11项NLP任务中夺得SOTA结果,引爆了整个NLP界。而BERT取得成功的一个关键因素是Transformer的强大作用。谷歌的Transformer模型最早是用于机器翻译任务,当时达到了SOTA效果。Transformer改进了RNN最被人诟病的训练慢的缺点,利用self-attention机制实现快…

身份证二要素核验API:提高身份验证的便捷性与安全性

引言 随着数字化时代的不断发展&#xff0c;身份验证变得愈发重要。在互联网上&#xff0c;身份验证是保护用户隐私和数据安全的关键环节。为了满足这一需求&#xff0c;身份证二要素核验API应运而生&#xff0c;成为提高身份验证的便捷性与安全性的得力工具。 身份验证的重要…

大数据Hadoop之——部署hadoop+hive+Mysql环境(window11)

一、安装JDK8 【温馨提示】对应后面安装的hadoop和hive版本&#xff0c;这里使用jdk8&#xff0c;这里不要用其他jdk了&#xff0c;可能会出现一些其他问题。 1&#xff09;JDK下载地址 Java Downloads | Oracle 按正常下载是需要先登录的&#xff0c;这里提供一个不用登录下载…

GLEIF携手TrustAsia,共促数字邮件证书的信任与透明度升级

TrustAsia首次发布嵌入LEI的S/MIME证书&#xff0c;用于验证法定实体相关的电子邮件账户的真实与完整性 2023年10月&#xff0c;全球法人识别编码基金会&#xff08;GLEIF&#xff09;与证书颁发机构&#xff08;CA&#xff09;TrustAsia通力合作&#xff0c;双方就促进LEI在数…

vscode使用

vscode 快捷键1、ctrl f 文件内搜索2、ctrlp 快速打开最近打开的文件3、ctrlshiltn 打开新的编辑器窗口4、ctrlshiftw 关闭编辑器5、ctrlhome 跳转到页头6、ctrlend 跳转到页尾 插件1、Markdown Preview 参考文章 https://zhuanlan.zhihu.com/p/113222681?utm_sourcecom.tenc…

米哈游、复旦发布,具备感知、大脑、行动的大语言模型“智能体”

ChatGPT等大语言模型展示了前所未有的创造能力&#xff0c;但距AGI&#xff08;通用人工智能&#xff09;还有很大的距离&#xff0c;缺少自主决策、记忆存储、规划等拟人化能力。 为了探索大语言模型向AGI演变&#xff0c;进化成超越人类的超级人工智能&#xff0c;米哈游与复…

SpringBoot集成Activiti7

SpringBoot集成Activiti7 SpringBoot版本使用2.7.16 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.16</version><relativePath/> <!-- lookup…

OTP语音芯片和TTS语音芯片的差异性

OTP&#xff08;One-Time Programmable&#xff09;语音芯片和TTS&#xff08;Text-to-Speech&#xff09;语音芯片是两种不同类型的声音处理芯片。OTP主要用于播放预录声音片段&#xff0c;而TTS则根据文本实时生成语音。OTP的灵活性较弱&#xff0c;适用于固定声音输出&#…

05 依赖倒置原则

官方定义&#xff1a; 依赖倒置原则&#xff08;Dependence Inversion Principle&#xff0c;DIP&#xff09;是指在设计代码架构 时&#xff0c;高层模块不应该依赖于底层模块&#xff0c;二者都应该依赖于抽象。抽象不应该依 赖于细节&#xff0c;细节应该依赖于抽象。 通俗…

深度学习 | CNN卷积核与通道

10.1、单通道卷积 以单通道卷积为例&#xff0c;输入为&#xff08;1,5,5&#xff09;&#xff0c;分别表示1个通道&#xff0c;宽为5&#xff0c;高为5。 假设卷积核大小为3x3&#xff0c;padding0&#xff0c;stride1。 运算过程&#xff1a; 不断的在图像上进行遍历&#…

Ask Milvus Anything!聊聊被社区反复@的那些事儿ⅠⅠ

在上月的 “Ask Milvus” 专题直播中&#xff0c;我们为大家带来了 Backup 的技术解读&#xff0c;收到了社区成员很多积极的反馈。本期直播&#xff0c;我们将继续为大家带来社区呼声很高的 “Birdwatcher” 和 “Range Search” 两项功能的技术解读。 BirdWatcher 作为 Milvu…

Eolink Apikit 接口自动化测试流程

自动化测试是一种软件测试方法&#xff0c;利用自动化工具和脚本来执行测试用例&#xff0c;以验证软件应用程序的功能、性能、稳定性等特性。自动化测试的主要目的是提高测试效率、减少测试成本&#xff0c;并确保软件的质量和可靠性。 作为测试人员&#xff0c;在进行比较大…