当前位置: 首页 > news >正文

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");   //注意后缀需要是gifui->label->setMovie(movie);//播放动图movie->start();
http://www.lryc.cn/news/127656.html

相关文章:

  • AtCoder Beginner Contest 314-A/B/C
  • 讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
  • 数学建模之“聚类分析”原理详解
  • 【面试问题】当前系统查询接口需要去另外2个系统库中实时查询返回结果拼接优化思路
  • Scada和lloT有什么区别?
  • Conda(Python管理工具)
  • (14)嵌套列表,Xpath路径表达式,XML增删查改,Implicit,Operator,Xml序列化,浅拷贝与深拷贝
  • 软考笔记 信息管理师 高级
  • 124、SpringMVC处理一个请求的流程是怎样的?
  • 低成本高收益,五金店小程序的秘密武器
  • C语言宏定义详解
  • SwiftUI 动画进阶:实现行星绕圆周轨道运动
  • 物理试题-空气净化器
  • Es、kibana安装教程-ES(二)
  • leetcode 917.仅仅反转字母
  • 有没有推荐的golang的练手项目?
  • springBoot的日志文件
  • Linux学习之iptables的nat表
  • 【数据结构】 ArrayList简介与实战
  • 您的网站不应该只提供一套通用 API
  • vue tree禁用和多选变为单选
  • ES6新特性。对象、数组新增方法
  • request发送http请求
  • leaflet实现MARK指向的方向随机
  • 如何使用Python编写小游戏?
  • 【Leetcode】84.柱状图中最大的矩形(Hard)
  • Arraylist集合
  • https的原理和方案
  • VTK 判断一个 点 是否在一个模型 stl 内部 vtk 点是否在内部 表面 寻找最近点
  • 【数据结构OJ题】链表的回文结构