lv20 QT 常用控件 2

1 QT GUI 类继承简介

布局管理器

输出控件

输入控件

按钮

容器

2 按钮示例

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QCheckBox>
#include <QLineEdit>
#include <QPushButton>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();
private slots:void setpass(bool flag);
private:QLineEdit *le;QCheckBox *ck;QPushButton *pb;};#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{le = new QLineEdit;le->setEchoMode(QLineEdit::Password);   //显示模式为密码ck = new QCheckBox("show Password");pb = new QPushButton("clear");QVBoxLayout *vbox = new QVBoxLayout;vbox->addWidget(le);vbox->addWidget(ck);vbox->addWidget(pb);this->setLayout(vbox);connect(pb, SIGNAL(clicked(bool)), le , SLOT(clear()));connect(ck, SIGNAL(clicked(bool)), this , SLOT(setpass(bool)));  //点击chechbox会显示密码,setpass(bool) 是接收信号的对象的槽函数,所以用this
}void Widget::setpass(bool flag)
{if(!flag)le->setEchoMode(QLineEdit::Password);elsele->setEchoMode(QLineEdit::Normal);
}Widget::~Widget()
{}

效果 

3 容器

3.1 Group box

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QGroupBox>
#include <QRadioButton>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();private:QGroupBox *gb;QRadioButton *r1, *r2, *r3;
};#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{gb = new QGroupBox("choice", this);r1 = new QRadioButton("aaaa");r2 = new QRadioButton("bbbb");r3 = new QRadioButton("cccc");QVBoxLayout *vbox = new QVBoxLayout;vbox->addWidget(r1);vbox->addWidget(r2);vbox->addWidget(r3);gb->setLayout(vbox);QVBoxLayout *mainbox = new QVBoxLayout;mainbox->addWidget(gb);this->setLayout(mainbox);
}Widget::~Widget()
{}

效果

3.2 ScrollArea

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QLabel>
#include <QScrollArea>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();
private:QLabel *lb;QScrollArea *sa;
};#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{//创建一个 QLabel 控件,并将一张名为 "1.jpg" 的图片显示在该 QLabel 上。lb = new QLabel(this);QPixmap pix("1.jpg");  //加载图片lb->setPixmap(pix);sa = new QScrollArea(this);sa->setWidget(lb);QVBoxLayout *mainbox = new QVBoxLayout;mainbox->addWidget(sa);this->setLayout(mainbox);
}Widget::~Widget()
{}

 效果

3.3 TabWidget

管理多个标签页(Tab)的容器控件。它提供了一个便捷的方式来显示和切换多个页面

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTabWidget>
#include <QTextEdit>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();
private:QTabWidget *tw;QTextEdit *te1, *te2, *te3;
};#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{tw = new QTabWidget;te1 = new QTextEdit("11111111");te2 = new QTextEdit("112221111");te3 = new QTextEdit("11113333");tw->addTab(te1, "1.c");tw->addTab(te2, "2.c");tw->addTab(te3, "3.c");QVBoxLayout *mainbox = new QVBoxLayout;mainbox->addWidget(tw);this->setLayout(mainbox);
}Widget::~Widget()
{}

效果 

3.4 StackedWidget

堆叠窗口控件,可以用来管理多个子部件,但一次只能显示其中一个子部件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QStackedWidget>
#include <QTextEdit>
#include <QComboBox>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();private:QStackedWidget *sw;QTextEdit *te1, *te2, *te3;QComboBox *cb;};#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{sw = new QStackedWidget;te1 = new QTextEdit("aaaa");te2 = new QTextEdit("aaadsfasdfasdfa");te3 = new QTextEdit("aaasdfaaa");sw->addWidget(te1);sw->addWidget(te2);sw->addWidget(te3);cb = new QComboBox;cb->addItem("1111");cb->addItem("2222");cb->addItem("3333");QVBoxLayout *mainbox = new QVBoxLayout;mainbox->addWidget(sw);mainbox->addWidget(cb);this->setLayout(mainbox);connect(cb, SIGNAL(activated(int)), sw, SLOT(setCurrentIndex(int)));
}Widget::~Widget()
{}

效果

3.5 Toolbox

折叠面板控件,通常用于显示多个分组的相关内容

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QToolBox>
#include <QPushButton>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();
private:QToolBox *tb;QPushButton *pb[3];
};#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{tb = new QToolBox;pb[0] = new QPushButton("aaa");pb[1] = new QPushButton("bbb");pb[2] = new QPushButton("ccc");tb->addItem(pb[0], "11111");tb->addItem(pb[1], "22222");tb->addItem(pb[2], "33333");QVBoxLayout *mainbox = new QVBoxLayout;mainbox->addWidget(tb);this->setLayout(mainbox);
}Widget::~Widget()
{}

效果(类似消息框)

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

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

相关文章

SLAM面试代码题:点云去畸变

题目 假设已知一帧点云每个点的时间戳和它的位姿,要求对点云去畸变 解题思路 定义一个点云的struct利用时间戳,把一帧内每个时刻的点云都变换到这一帧的起始时间处位置使用线性插值,旋转使用球面非线性插值// 点云去畸变 #include <iostream> #include <Eigen/Co…

击鼓传花游戏

有N个小朋友围成一圈玩击鼓传花游戏&#xff0c;将小朋友编号为1-N&#xff0c;从1号开始传花&#xff0c;每次传3个&#xff0c;拿到花的小朋友表演节目后退出。任给N&#xff0c;问最后一个表演的小朋友编号是多少&#xff1f;例如&#xff1a;输入5&#xff0c;从1号开始传花…

基于springboot+vue的共享汽车管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Linux中的echo命令

echo​命令是在Linux系统中常用的用于输出文本或变量内容的命令。它可以将指定的文本或变量的值输出到终端上。下面是关于 ​echo​命令的使用说明和示例&#xff1a; 1. 基本语法&#xff1a; echo [选项] [字符串或变量] 2. 使用示例&#xff1a; 输出文本内容&#xff1…

3d模型版本转换器注意事项---模大狮模型网

在使用3D模型版本转换器时&#xff0c;有一些注意事项可以帮助您顺利完成模型转换并避免不必要的问题&#xff1a; 数据完整性&#xff1a;在进行模型转换之前&#xff0c;确保您的原始3D模型文件没有损坏或缺失数据。损坏的文件可能导致转换器无法正常处理或输出错误的结果。 …

力扣经典题目解析--滑动窗口最大值

原题地址: . - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1a;…

小程序自定义组件

自定义组件 1. 创建-注册-使用组件 组件介绍 小程序目前已经支持组件化开发&#xff0c;可以将页面中的功能模块抽取成自定义组件&#xff0c;以便在不同的页面中重复使用&#xff1b; 也可以将复杂的页面拆分成多个低耦合的模块&#xff0c;有助于代码维护。 开发中常见的…

111790-37-5 ,生物素-氨基,一种生物素化合物,可与-NHS、-COOH反应

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;111790-37-5 &#xff0c;生物素-氨基&#xff0c;生物素氨基&#xff0c;Biotin-NH2&#xff0c;Biotin-amine 一、基本信息 【产品简介】&#xff1a;Biotin-NH2 provides a convenient biotinylation method for…

OSCP靶场--DVR4

OSCP靶场–DVR4 考点(1.windows&#xff1a;路径遍历获取私钥getshell 2.ssh shell中runas切换用户) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC -p- 192.168.161.179 --min-rate 2000 Starting Nmap 7.92 ( https://nmap.org ) at 2024-02-29 07:14 EST…

Springboot接口参数校验

在设计接口时我们通常需要对接口中的非法参数做校验&#xff0c;以降低在程序运行时因为一些非法参数而导致程序发生异常的风险&#xff0c;例如登录的时候需要校验用户名密码是否为空&#xff0c;创建用户的时候需要校验邮件、手机号码格式是否准确。如果在代码中对接口参数一…

系统集成Prometheus+Grafana

根据产品需求在自己的系统中添加一个系统监控的页面&#xff0c;其中有主机信息的显示&#xff0c;也有一些业务信息的显示。调研后的方案是 主机信息通过Prometheus采集和存储&#xff0c;业务信息通过自己系统的调度任务统计后存储在Mysql中&#xff0c;使用Grafana对接Prome…

Java必须掌握的继承的特点和继承体系的设计(含面试大厂题和源码)

Java继承是面向对象编程的一个基本特性&#xff0c;它允许一个类继承另一个类的属性和方法。设计良好的继承体系是高质量软件开发的关键。在大厂面试中&#xff0c;面试官可能会询问关于Java继承特点及如何设计一个合理的继承体系的问题&#xff0c;以评估你的面向对象设计能力…

ICLR 2024|ReLU激活函数的反击,稀疏性仍然是提升LLM效率的利器

论文题目&#xff1a; ReLU Strikes Back: Exploiting Activation Sparsity in Large Language Models 论文链接&#xff1a; https://arxiv.org/abs/2310.04564 参数规模超过十亿&#xff08;1B&#xff09;的大型语言模型&#xff08;LLM&#xff09;已经彻底改变了现阶段人工…

gcc和g++的区别,如何看自己的编译器支持的C++的版本

gcc和g的区别 用一句话来说&#xff0c;就是gcc将程序视为c语言的&#xff0c;g将程序视为C的 gcc和g的区别主要在于它们处理不同后缀的文件类型、编译和连接阶段的不同调用方式&#xff0c;以及它们对C特性的支持方式。以下是详细介绍&#xff1a;123 文件类型。gcc将后缀为…

通过多线程并发方式实现服务器

与多进程实现对比来看。 示例来源于网络视频 #include <stdio.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> #include <ctype.h> #include <unistd.h> #include <fcntl.h>#include "wrap.h"#de…

【C++ 测试】

C 测试 一、二维数组二、私有成员三、function用法四、类里面创建另一个类五、lambda六、Map动态申请 一、二维数组 #include <iostream> #include<windows.h> #include <map> // SetConsoleOutputCP ( CP_UTF8 ) ; using namespace std;void test1() {map…

求最短路径之迪杰斯特拉算法

对fill用法的介绍 1.用邻接矩阵实现 const int maxn100; const int INF100000000;//无穷大&#xff0c;用来初始化边 int G[maxn][maxn];//用邻接矩阵存储图的信息 int isin[maxn]{false};//记录是否已被访问 int minDis[maxn];//记录到顶点的最小距离void Dijkstra(int s,in…

网格图的搜索

来自灵神网格图题单。 1. 网格图 1.1. LC 200 岛屿数量 这题我一开始想繁了&#xff0c;想维护并查集&#xff0c;然后看等价类个数。其实完全没有必要。因为连通分量深搜到头就可以直接给答案计数1。利用vis数组维护访问过的点&#xff0c;然后碰到新连通分量重新深搜即可。…

Pinia使用

官方地址&#xff1a;Pinia | The intuitive store for Vue.js (vuejs.org)https://pinia.vuejs.org/ 1.安装 npm install pinia npm install pinia-plugin-persistedstate Pinia是一个基于Vue 3的状态管理库&#xff0c;它使得管理Vue的全局状态变得更加容易和直观。 而…

自定义el-dialog的样式

实现效果&#xff1a; 样式代码如下&#xff1a;&#xff08;可以写在common.scss文件夹中&#xff09; .el-dialog__header {padding: 16px 20px;border-bottom: 1px solid #DCDFE6;display: flex;align-items: center;.el-dialog__title {font-size: 16px;position: relativ…