QT:UI控件(按设计师界面导航界面排序)

基础部分

创建新项目:QWidget,QMainWindow,QDialog
QMainWindow继承自QWidget,多了菜单栏;
QDialog继承自QWidget,多了对话框

QMainWindow 菜单栏和工具栏:
Bar:

菜单栏:QMenuBar,菜单:QMenu

在这里插入图片描述

    //重置窗口大小
    resize(600,400);

    //菜单栏创建(菜单栏最多只能有一个)
    QMenuBar * bar = menuBar();
    //将菜单栏放入到窗口中
    setMenuBar(bar);

    //创建菜单
    QMenu * filename= bar->addMenu("文件");
    QMenu * editname= bar->addMenu("编辑");

    QAction * newAction = filename->addAction("新建");
    //添加分割线
    filename->addSeparator();
    //增加子菜单的内容
    QAction * OpenAction = filename->addAction("打开");
    
    //设置中心部件 只能有一个(这个可加可不加)
    QTextEdit *edit = new QTextEdit(this);
    setCentralWidget(edit);
工具栏:QToolBar,
状态栏:QStatusBar();
浮动窗口:QDockWidget	可以有多个
对话框:
消息对话框QMessage:错误对话框(critical),信息对话框(information),问题对话框(question),警告
选择颜色(QColorDialog):
选择文件或目录(QFileDialog):
...还有几个其他的标准对话框

按钮组

pushButton 显示文字


//lambda表达式(C++11特性):[](){};	
	connect(mybtn,&MyPushButton::clicked,[=](){
		this->close();
	});
//点击新建按钮,弹出对话框
    connect(ui->actionnew,&QAction::triggered,[=](){
        //对话框
        QDialog dlg(this);
        dlg.exec();
    });

ToolButton 可用来显示图片
单选: Radio Button
多选:check Box
(group box 可将选项button放在一起(单选/多选))

Item Views(Model-base)

是基于其他模组的,例如数据库之类。不常用

Item Widgets (Item-base):

在这里插入图片描述

表格控件:

控件:QListWidget(图片部件标注1的部分)
List Widget (分行显示):每一行:QListWidgetItem ,然后加入(addItem)到ui的listwidget控件中

//利用ListWidget逐行显示
    QListWidgetItem *item = new QListWidgetItem("one");
    //将第一行
    ui->listWidget->addItem(item);
    item->setTextAlignment(Qt::AlignHCenter);

    QStringList list;
    list<<"456"<<"7931"<<"46913";

    list.append("93");
    list.insert(6,"6666");

    ui->listWidget->addItems(list);

控件:QTreeWidget树控件(图片部件标注2的部分)
实现树列介绍,

//利用TreeWidget树控件使用
    ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");

    QTreeWidgetItem * item_li = new QTreeWidgetItem(QStringList()<<"力量");
    QTreeWidgetItem * item_min = new QTreeWidgetItem(QStringList()<<"敏捷");
    QTreeWidgetItem * item_zhi = new QTreeWidgetItem(QStringList()<<"智力");

    //加载顶层的节点
    ui->treeWidget->addTopLevelItem(item_li);
    ui->treeWidget->addTopLevelItem(item_min);
    ui->treeWidget->addTopLevelItem(item_zhi);

    //追加子节点
    QStringList herpL1;
    herpL1<<"英雄1"<<"技能点1,技能点2";
    QTreeWidgetItem * L1 = new QTreeWidgetItem(herpL1);
    item_li->addChild(L1);

控件:QTableWidget控件(图片部件标注3的部分)

//利用TableWidget控件使用(表格)
    //设置列数
    ui->tableWidget->setColumnCount(3);

    //设置水平表头
    ui->tableWidget->setHorizontalHeaderLabels(QStringList ()<<"姓名"<<"性别"<<"年龄");

    //设置行数
    ui->tableWidget->setRowCount(5);

    //设置正文(第一行第一列)
    //ui->tableWidget->setItem(0,0,new QTableWidgetItem("人物1"));
    QStringList namelist;
    namelist<<"人物1"<<"人物2"<<"人物3"<<"人物4";

    QStringList sexlist;
    sexlist << "女1" <<"男1"<<"男1"<<"女2";     //此处使用"女1"

    for(int i=0;i<4;i++)
    {
        int col=0;
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(namelist[i]));
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexlist[i]));
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));
    }

其他常用控件:(Containers容器)

Group Box 分组的部件(直接在ui中拖动设置即可)(一般设置页面排版时用到,例如在单选/多选框)

Scroll Area 滚动的区域,滚动条(直接在ui中拖动设置即可)(图片部件标注4的部分)

ToolBox 分页(直接在ui中拖动设置即可)(图片部件标注5的部分)

Tab Widget 分页(直接在ui中拖动设置即可)(图片部件标注6的部分)

stacked widget 切换页面(调试时直接在ui中拖动设置即可,但是使用调用时需使用栈空间的索引进行切换),(图片部件标注7的部分)
例如:开发中有可识别的切换按钮,但是程序中切换需要通过新增按钮来进行切换(setCurrentIndex)

//栈控件的使用
    //设置默认值页面
    ui->stackedWidget->setCurrentIndex(0);
    connect(ui->pushButton_stackW_1,&QPushButton::clicked,[=](){
       ui->stackedWidget->setCurrentIndex(0);   //定位到栈空间的索引
    });
    connect(ui->pushButton_stackW_2,&QPushButton::clicked,[=](){
       ui->stackedWidget->setCurrentIndex(1);   //定位到栈空间的索引
    });
    connect(ui->pushButton_stackW_3,&QPushButton::clicked,[=](){
       ui->stackedWidget->setCurrentIndex(2);   //定位到栈空间的索引
    });

Frame是一个边框

其他常用控件:(Input Widget)

在这里插入图片描述

Frame是一个边框
(Input Widget)

Combo Box 下拉框:(直接在ui中拖动设置即可)(图片部件标注1的部分)
//comboBox下拉框
    ui->comboBox->addItem("车1");
    ui->comboBox->addItem("车2");
    ui->comboBox->addItem("车3");

    //点击按钮,选中车三选项
    connect(ui->pushButton,&QPushButton::clicked,[=](){
        //ui->comboBox->setCurrentIndex(2);
        //或者直接输入文字(在确定有该选项的情况下)
        ui->comboBox->setCurrentText("车3");
    });
fontComboBox 字体下拉框(图片部件标注2的部分)
lineEdit 单行编辑框(图片部件标注3的部分)
TextEdit 多行编辑框(可改变字体颜色形式等)(图片部件标注4的部分)
Plain TextEdit 纯文本多行编辑框
spin box 逐个增减输入框(图片部件标注5的部分)
Double spin box 加小数点的(图片部件标注6的部分)
Time Edit 时间输入框(图片部件标注7的部分)
dateEdit 日期输入框
dateTimeEdit 时间和日期输入框
horizontalScrollBar	水平滑动条
verticalScrollBar	竖直滑动条
horizontalSlider	水平滑动条(可与spin box进行组合)
verticalSlider 	竖直滑动条(可与spin box进行组合)

(Display widget)显示标签
label :可显示文字和图片(首先需要把图片添加到资源文件中,然后程序添加显示图片)
在这里插入图片描述

//在lable中显示图片(图片提前加载到项目资源文件res中)

    ui->label->setPixmap(QPixmap(":/1.jpg"));

    //在lable中也可以放动图
    QMovie * movie = new QMovie(":/one.gif");   //注意后缀需要是gif
    ui->label->setMovie(movie);
    //播放动图
    movie->start();

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Sklearn】基于随机森林算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于随机森林算法的数据分类预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理1.1 模型原理1.2 数学模型 2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 随机森林&#xff08;Random Forest&#xff09;是一种集成学习方法…

【深度学习】PyTorch快速入门

【深度学习】学习PyTorch基础 介绍PyTorch 深度学习框架是一种软件工具&#xff0c;旨在简化和加速构建、训练和部署深度学习模型的过程。深度学习框架提供了一系列的函数、类和工具&#xff0c;用于定义、优化和执行各种深度神经网络模型。这些框架帮助研究人员和开发人员专注…

RabbitMQ 安装教程

RabbitMQ 安装教程 特殊说明 因为RabbitMQ基于Erlang开发&#xff0c;所以安装时需要先安装Erlang RabbitMQ和Erlang版本对应关系 查看地址&#xff1a;www.rabbitmq.com/which-erlan… 环境选择 Erlang: 23.3及以上 RabbitMQ: 3.10.1Windows 安装 1. 安装Erlang 下载地…

Spark 学习记录

基础 SparkContext是什么&#xff1f;有什么作用&#xff1f; https://blog.csdn.net/Shockang/article/details/118344357 SparkContext 是什么&#xff1f; SparkContext 是通往 Spark 集群的唯一入口&#xff0c;可以用来在 Spark 集群中创建 RDDs 、累加和广播变量( Br…

【css】渐变

渐变是设置一种颜色或者多种颜色之间的过度变化。 两种渐变类型&#xff1a; 线性渐变&#xff08;向下/向上/向左/向右/对角线&#xff09; 径向渐变&#xff08;由其中心定义&#xff09; 1、线性渐变 语法&#xff1a;background-image: linear-gradient(direction, co…

黑客必备的操作系统——kali linux安装

大家经常会在电视里面看到各种炫酷的黑客操作&#xff0c;那么黑客一般用什么操作系统呢&#xff1f;今天小训带大家来安装黑客必备的kali linux-2022操作系统&#xff0c;有兴趣的一起来学习下吧&#xff01; 1、安装前准备 1.1 VMware下载 VMware官网下载&#xff1a; ht…

开源力量再现,国产操作系统商业化的全新探索

文章目录 1. 开源运动的兴起2. 开源力量的推动3. 国产操作系统的崭露头角3.1 国产操作系统有哪些 4.国产操作系统的商业化探索5.开源力量对国产操作系统商业化的推动 操作系统作为连接硬件、中间件、数据库、应用软件的纽带&#xff0c;被认为是软件技术体系中最核心的基础软件…

linux4.0新增32位ARM的系统调用

修改内核源码 Linux系统为每一个系统调用赋予一个系统调用号。当应用程序执行一个系统调用时&#xff0c;应用程序就可以知道执行和调用到哪个系统调用了&#xff0c;从而不会造成混乱。系统调用号一旦分配之后就不会有任何变更&#xff0c;否则已经编译好的应用程序就不能运行…

runtime error: member access within misaligned address(力扣最常见错误之一)

runtime error: member access within misaligned address&#xff08;力扣最常见错误之一&#xff09; 前言原因和解决办法总结 前言 最近博主在刷力扣时&#xff0c;明明代码逻辑都没问题&#xff0c;但总是报下面这个错误&#xff1a; runtime error: member access within…

SQL-每日一题【1251. 平均售价】

题目 Table: Prices Table: UnitsSold 编写SQL查询以查找每种产品的平均售价。average_price 应该四舍五入到小数点后两位。 查询结果格式如下例所示&#xff1a; 解题思路 1.题目要求查询每种产品的平均售价。给出了两个表&#xff0c;我们用聚合查询来解决此问题。 2.首先我…

腾讯会议:云上协奏,远程韶华

腾讯会议的原理及历史 摘要 本论文介绍了腾讯会议的原理和历史。腾讯会议是一款基于云计算和通信技术的在线会议平台,由腾讯公司推出。通过分析腾讯会议的工作原理和演进历史,我们可以深入了解该平台是如何实现高效、便捷、安全的远程协作和沟通的。 1. 引言 近年来,随着…

ruby send call 的简单使用

refer: ruby on rails - What does .call do? - Stack Overflow Ruby使用call 可以调用方法或者proc m 12.method("") # > method gets the method defined in the Fixnum instance # m.class # > Methodm.call(3) #> 15 # 3 is passed inside the…

Mr. Cappuccino的第63杯咖啡——Spring之AnnotationConfigApplicationContext源码分析

Spring之AnnotationConfigApplicationContext源码分析 源码分析 源码分析 以上一篇文章《Spring之Bean的生命周期》的代码进行源码分析 AnnotationConfigApplicationContext applicationContext new AnnotationConfigApplicationContext(SpringConfig02.class); LifeCycleBe…

如何在Stream流中分组统计

上面是今天碰到需求,之前就做过类似的分组统计,这个相对来说比较简单,统计的也少,序号和总预约人数这两部分交给前端了,不需要由后端统计,后端统计一下预约日期和检查项目和预约人数就行; Overridepublic List<ItemStatisticsVo> statistics(ItemStatisticsModel itemSta…

智能与本体

世界的本体是一个复杂而广泛的话题&#xff0c;可以根据不同的学科、思想体系和信仰背景来进行不同的解释和理解。它涉及到人类对于现实和存在的思考&#xff0c;以及对于世界本质的追寻和探索。 在哲学上&#xff0c;世界的本体指的是存在的实质或基本特征。它探讨了世界的本源…

[保研/考研机试] KY85 二叉树 北京大学复试上机题 C++实现

题目链接&#xff1a; 二叉树https://www.nowcoder.com/share/jump/437195121692000296981 描述 如上所示&#xff0c;由正整数1&#xff0c;2&#xff0c;3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是&#xff0c;结点m所在的子树中一共包…

线程记录(2)

1.线程状态 NEW : 分配内存地址&#xff0c;创建线程 RUNNABLE&#xff1a;&#xff08;就绪/运行&#xff09;调用start()之后&#xff08;/没有调度CPU调度&#xff09; BLOCKED&#xff1a;还未拿到锁&#xff0c;等待、被阻塞&#xff08;拿到synchronized失败状态&…

AI 绘画Stable Diffusion 研究(七) 一文读懂 Stable Diffusion 工作原理

大家好&#xff0c;我是风雨无阻。 本文适合人群&#xff1a; 想要了解AI绘图基本原理的朋友。 对Stable Diffusion AI绘图感兴趣的朋友。 本期内容&#xff1a; Stable Diffusion 能做什么 什么是扩散模型 扩散模型实现原理 Stable Diffusion 潜扩散模型 Stable Diffu…

TFRecords详解

内容目录 TFRecords 是什么序列化(Serialization)tf.data 图像序列化&#xff08;Serializing Images)tf.Example函数封装 小结 TFRecords 是什么 TPU拥有八个核心&#xff0c;充当八个独立的工作单元。我们可以通过将数据集分成多个文件或分片&#xff08;shards&#xff09;…

初始多线程

目录 认识线程 线程是什么&#xff1a; 线程与进程的区别 Java中的线程和操作系统线程的关系 创建线程 继承Thread类 实现Runnable接口 其他变形 Thread类及其常见方法 Thread的常见构造方法 Thread类的几个常见属性 Thread类常用的方法 启动一个线程-start() 中断…