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

news2025/7/15 17:33:15

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转strin
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));
    }

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

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

相关文章

apk和小程序渗透

apk和小程序域服务器通信使用的还是http协议&#xff0c;只是使用了加密。只要可以获取到http的请求报文&#xff0c;就可以回归到web渗透的层面。apk和小程序的渗透很复杂&#xff0c;涉及逆向时要进行脱壳&#xff0c;脱壳后反编译了&#xff0c;源代码没做加密就能直接逆向出…

基于springboot实现家具网站设计与实现平台项目【项目源码+论文说明】计算机毕业设计

摘要 随着移动互联网技术的深入发展&#xff0c;电子商务也不断的完善&#xff0c;线上销售额不断提高&#xff0c;网络消费成为人民日常生活的一部分。并且随着电子商务的发展&#xff0c;也呈现出多元化方向&#xff0c;各种农村电商、生鲜电商、家具电商等&#xff0c;带动…

Location的匹配

nginx的正则表达式: ^:字符串的起始位置 $:字符窜的结束位置 *:匹配所有 :匹配前面的字符一次或者多次 ?:匹配前面的字符0次或者1次 .:任意单个字符 {n}:连续重复出现n次。 {n,m}:连续重复出现n-m次 [a-Z0-9A-Z] [C]:匹配单个字符c ():分组 |:或 一 Location的分类&#xff1a…

笔试强训day01

文章目录 易错点1、字符串格式打印%m.ns\n&#xff08;m&#xff0c;n为整数&#xff09;易错点2、指针的理解易错点3、编程题&#xff1a;组队竞赛 易错点1、字符串格式打印%m.ns\n&#xff08;m&#xff0c;n为整数&#xff09; 正确答案&#xff1a;B。 #include<iostre…

小程序如何设置配送方式

配送方式是一个非常重要的功能&#xff0c;它直接关系到用户的购物体验和商家的运营效率。小程序提供了灵活的配送方式设置&#xff0c;可以根据不同的需求进行系统级别和单个商品的设置。 首先&#xff0c;我们来看系统级别的配送方式设置。在小程序管理员后台->配送设置…

模板学堂|DataEase协助电商企业开展用户运营

DataEase开源数据可视化分析平台于2022年6月正式发布模板市场&#xff08;https://dataease.io/templates/&#xff09;。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板&#xff0c;方便用户根据自身的业务需求和使用场景选择对应的仪表板模板&#xff0c;并…

【Java 进阶篇】深入理解 JavaScript DOM Node 对象

在前端开发中&#xff0c;与HTML文档进行交互是一项基本任务。文档对象模型&#xff08;Document Object Model&#xff0c;简称DOM&#xff09;为开发者提供了一种以编程方式访问和操作HTML文档的方式。DOM的核心是节点&#xff08;Node&#xff09;对象&#xff0c;它代表了文…

“Flex弹性布局、轮播图mock遍历数据和首页布局解析与实践“

目录 引言1. Flex弹性布局介绍及使用什么是Flex弹性布局&#xff1f;Flex容器与Flex项目Flex属性详解 2. 轮播图mock遍历数据简述轮播图的作用和意义处理mock数据的重要性使用Mock模拟数据遍历 3. 首页布局总结 引言 在现代网页开发中&#xff0c;灵活性和响应式布局是至关重要…

高数定理集合啦

haha~ 最近在准备数学竞赛&#xff0c;好久没有发布笔记啦&#xff0c;今天就来一波高数里常用的定理吧&#xff0c;不全面的话后续会更新哒~ 费马定理&#xff1a;对于一个函数的局部极值点&#xff0c;如果导数存在&#xff0c;那么导数在该点处必须为零&#xff0c;即 f(x)0…

理解宇称时间对称:探索物理世界的对称性

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 在物理学的深奥领域&…

Kotlin Compose Multiplatform 跨平台开发实践之加入 iOS 支持

前言 几个月前 Compose Multiplatform 的 iOS 支持就宣布进入了 Alpha 阶段&#xff0c;这意味着它已经具备了一定的可用性。 在它发布 Alpha 的时候&#xff0c;我就第一时间尝鲜&#xff0c;但是只是浅尝辄止&#xff0c;没有做过多的探索&#xff0c;最近恰好有点时间&…

【配置环境】SQLite数据库安装和编译以及VS下C++访问SQLite数据库

一&#xff0c;环境 Windows 11 家庭中文版&#xff0c;64 位操作系统, 基于 x64 的处理器SQLite - 3.43.2Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.5.3 二&#xff0c;SQLite简介 简要介绍 SQLite&#xff08;Structured Query Language for Lite&a…

新手最容易触发的10个PHP语言Bug分享

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

Linux性能优化--性能追踪:受CPU限制的应用程序(GIMP)

10.0 概述 本章包含了一个例子&#xff1a;如何用Linux性能工具在受CPU限制的应用程序中寻找并修复性能问题。 阅读本章后&#xff0c;你将能够&#xff1a; 在受CPU限制的应用程序中明确所有的CPU被哪些源代码行使用。用1trace和oprofile弄清楚应用程序调用各种内部与外部函…

基于蜜獾优化的BP神经网络(分类应用) - 附代码

基于蜜獾优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于蜜獾优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.蜜獾优化BP神经网络3.1 BP神经网络参数设置3.2 蜜獾算法应用 4.测试结果&#xff1a;5.M…

MySQL双主一从高可用

MySQL双主一从高可用 文章目录 MySQL双主一从高可用环境说明1.配置前的准备工作2.配置yum源 1.在部署NFS服务2.安装主数据库的数据库服务&#xff0c;并挂载nfs3.初始化数据库4.配置两台master主机数据库5.配置m1和m2成为主数据库6.安装、配置keepalived7.安装部署从数据库8.测…

leetcode-200. 岛屿数量

1. 题目 leetcode题目链接 2. 解答 思路&#xff1a; 需要循环遍历每个节点&#xff1b;找到陆地&#xff0c;基于陆地开始遍历陆地的上下左右&#xff1b;数组dirm dirn就可以表示某个区域的上下左右&#xff1b;标记遍历过的节点&#xff1b;设计循环的退出条件&#xf…

Kotlin中的比较运算符

在Kotlin中&#xff0c;我们可以使用比较运算符进行值的比较和判断。下面对Kotlin中的等于、不等于、小于、大于、小于等于和大于等于进行详细介绍&#xff0c;并提供示例代码。 等于运算符&#xff08;&#xff09;&#xff1a; 等于运算符用于判断两个值是否相等。如果两个值…

XMLHttpRequest的readyState状态值

readyState状态值 功能&#xff1a;在Ajax请求与服务器响应中&#xff0c;是通过XMLHttpRequest对象完成。而readyState状态值则是记录XMLHttpRequest对象在这个过程进行变化的状态。 readyState状态值readyState分别有5个状态值 0&#xff1a;请求未初始化&#xff1a;在未点击…

微信小程序--数字化会议OA系统之首页搭建

一、Flex弹性布局 布局的传统解决方案&#xff0c;基于盒状模型&#xff0c;依赖 display属性 position属性 float属性。它对于那些特殊布局非常不方便&#xff0c;比如&#xff0c;垂直居中就不容易实现。 2009年&#xff0c;W3C提出了一种新的方案—-Flex布局&#xff0c;可…