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.hqwc.cn/news/505520.html

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

相关文章

mac苹果电脑c盘满了如何清理内存?2024最新操作教程分享

苹果电脑用户经常会遇到麻烦:内置存储器(即C盘)空间不断缩小&#xff0c;电脑运行缓慢。在这种情况下&#xff0c;苹果电脑c盘满了怎么清理&#xff1f;如何有效清理和优化存储空间&#xff0c;提高计算机性能&#xff1f;成了一个重要的问题。今天&#xff0c;我想给大家详细介…

2024年还可以做量化交易吗?散户怎么实现快速通道?

首先先明确两个点&#xff1a;第一就是2024年也可以做量化交易&#xff01; 第二就是散户也可以实现快速通道&#xff01; 我们一个一个来解答&#xff1a; 先说量化交易&#xff1a; 散户也是可以做量化交易的&#xff0c;我们是最近看到很多量化交易被监管所罚的&#xff0c…

接上Promise()对象处理回调地狱:怎么用.then()?什么是Async、Await?

上一篇基于JavaScript基础的异步、同步操作&#xff0c;promise、.then()-CSDN博客讲了【啥是异步操作、同步操作&#xff1f;】然后简单讲了回调函数是啥、Promise()对象是啥、.then()函数是啥&#xff0c;这一篇讲讲promise()对象到底怎么配合.then()函数解决回调地狱&#x…

day08_分类品牌管理商品规格管理商品管理

文章目录 1 分类品牌管理1.1 菜单添加1.2 表结构介绍1.3 页面制作1.4 品牌列表加载1.4.1 后端接口BrandControllerBrandServiceBrandMapperBrandMapper.xml 1.4.2 前端对接brand.jscategoryBrand.vue 1.5 分类数据加载1.6 列表查询1.6.1 需求说明1.6.2 后端接口需求分析Categor…

热点一线总有神秘小盒现身,到底有什么神秘之处?高人气随身WiFi第一名,2024最值得购买的随身WiFi

近日&#xff0c;一位好事儿的网友突然将多个新闻热点的截图发在了自己的社交平台上&#xff0c;引起了大家的广泛关注。原来在这些记者报道一线新闻的时候&#xff0c;总有一个神秘小盒子在若隐若现。后经网友深扒得知这是格行品牌旗下的大热产品——格行随身WiFi。为什么格行…

Revit-二开之创建线性尺寸标注-(5)

创建线性尺寸标注 对应的Revit界面的按钮 线性尺寸标注源码 本篇文章实现的逻辑是从rvt文章中拾取一面墙,然后对墙添加再水平方向上的线性尺寸标注 protected override Result OnExecute(ExternalCommandData commandData, ref string message, ElementSet elements

简单的生活案例解释:关系图卷积网络(RGCN)

目录 1、用一个简单的生活案例来解释关系图卷积网络(RGCN)2、RGCN与FB15K-237文件格式详情数据集构成结合RGCN和FB15K-237参考文献1、用一个简单的生活案例来解释关系图卷积网络(RGCN) 假设你是一名社交媒体平台的工程师,你的任务是分析用户之间的关系,以便为他们推荐更…

Python用函数实现代码复用

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 生命对某些人来说是美丽的&#xff0c…

云时代【7】—— 存储卷

云时代【7】—— 存储卷 四、Docker&#xff08;四&#xff09;存储卷1. 存储卷&#xff08;1&#xff09;定义&#xff08;2&#xff09;分类 2. 相关指令&#xff08;1&#xff09;管理卷 VolumeA. 创建方式方式一&#xff1a;docker volume方式二&#xff1a;docker run -v …

Mybatis plusSwagger代码生成器

Mybatis plus 1.查询没找到请求参数 Parameter pageNum not found. Available parameters are [arg1, arg0, param3, param1, param2, username] 原因&#xff1a; Mapper文件中都要加上 Param("pageNum") Select("SELECT * FROM user where username like #{u…

Java进阶-IO(2)

话接上回&#xff0c;继续java IO部分的学习。上一次说完了字节流的读写数据&#xff0c;这次介绍一下字符流的读写数据。 一、字符流及其读/写数据 1、字符流 1.1 概述 1&#xff09;背景 由于字节流操作中文不是特别方便&#xff0c;所以java就提供了字符流。 字符流字节…

AXI4—FULL

文章目录 手册解读AXI—FULL协议特性AXI—FULL架构信号描述代码编写手册解读 AXI—FULL协议特性 支持的主要功能: 数据通道与地址通道分离支持不对齐传输,使用数据掩码实现突发传输只需要一个突发基地址读写通道分离AXI—FULL架构 关于读操作 关于写操作