QT:使用行编辑器、文本编辑器、单选按钮、水平布局、垂直布局做一个小项目

news2024/12/24 15:33:39

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QLineEdit>  //行编辑器
#include <QTextEdit>  //文本编辑器
#include <QRadioButton>   //单选按钮

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

private:
    QLineEdit *li;
    QTextEdit *te;
    QRadioButton *rb[4];  //指针数组存放4指针

};

#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include <QHBoxLayout>  //水平布局
#include <QVBoxLayout>  //垂直布局

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    li = new QLineEdit(this);  //创建一个行编辑器
    li->setReadOnly(true);  //设置为只读

    te = new QTextEdit(this);  //创建一个文本编辑器
    te->setFixedSize(320,240);
    
    QVBoxLayout *vbox1 = new QVBoxLayout();  //创建垂直布局管理器
    vbox1->addWidget(li);   //添加
    vbox1->addWidget(te);

    QStringList list = {"成都","贵阳","长沙","深圳"}; //保存单选按钮的名字
    
    QVBoxLayout *vbox2 = new QVBoxLayout();  //创建垂直布局管理器

    for(int i = 0;i < 4;i++)
    {
        rb[i] = new QRadioButton(this); //创建4个单选按钮
        rb[i]->setText(list.at(i));  //分别给4个单选按钮取名
        vbox2->addWidget(rb[i]);  //将它们加入垂直布局管理器
        connect(rb[i],&QRadioButton::clicked,this,[=](){  //单选按钮被按下并松开触发
           li->setText(list.at(i));  //设置文本框内容为list.at(i)
           te->append(list.at(i));   //文本编辑器中内容追加为list.at(i)
        });
    }

    QHBoxLayout *hbox = new QHBoxLayout();  //创建水平布局管理器
    hbox->addLayout(vbox1);  //将vbox1垂直布局加入其中
    hbox->addLayout(vbox2);  //将vbox2垂直布局加入其中

    setLayout(hbox);  //设置整个布局
}

Widget::~Widget()
{

}

结果

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

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

相关文章

【Vue-01】MVVM数据双向绑定与Vue的生命周期

目录 一、Vue介绍 1.1 什么是Vue &#xff1f; 1.2 Vue的优点 1.3 库与框架的区别 二、Vue入门 2.1 MVVM&#xff08;数据双向绑定&#xff09; 2.2 BootCDN&#xff08;加速服务&#xff09; 三、Vue实例 3.1 Vue开发示例 3.2 双向数据绑定 3.3 Vue生命周期钩子 一…

云服务部署:AWS、Azure和GCP比较

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

多输入多输出 | MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出

多输入多输出 | MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出 目录 多输入多输出 | MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 多输入多输出 | MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出…

React+Typescript项目环境中搭建并使用redux环境

前几篇文章 我们的项目已经开始功能渐渐完善了 那么 我们来说最后一个点 redux 这个并不需要我们多努力 其实官方文档给到已经算是很全面了 我们可以直接访问地址 TypeScript 中文手册中文手册和官方是一样的 而且对我们非常友好 我们会在左侧导航栏中找到一个 React 点进去 …

内网IP端口提供外网连接访问?快解析动态域名与内网映射P2P穿透方案

我们在本地搭建服务器及发布互联网时&#xff0c;可以通过动态域名的方式联网。DDNS原理是用固定的域名代替变化IP&#xff0c;实现局域网发布公网&#xff0c;是适合本地动态IP环境的使用。但当本地没有公网IP时&#xff0c;如果解析绑定到内网IP&#xff0c;将内网IP端口提供…

【集合】LinkedList 详解

Java中的LinkedList是一种实现了List接口的双向链表数据结构。链表是由一系列节点&#xff08;Node&#xff09;组成的&#xff0c;每个节点包含了指向上一个节点的指针prev,数据item和指向下一个节点next的指针。 实现了Deque接口&#xff0c;可以在两端进行操作(插入、删除…

四大函数式接口(重点,必须掌握)

新时代程序员必须要会的 &#xff1a;lambda表达式、链式编程、函数式接口、Stream流式计算 什么是函数式接口 1.函数型接口 package com.kuang.function;import java.util.function.Function;/*** Function函数型接口 有一个输入参数&#xff0c;有一个输出* 只要是函数式接口…

华为云云耀云服务器L实例评测|利用云服务器部署个人博客站

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 目录 前言效果图环境服务器购买安装宝塔面板环境搭建源码下载配置NGINX打包前端总结 前言 有句话说的好&#xff1a;在小的个体&#xff0c;也有自己的品牌。 就像我和腾讯一样&#xff0c…

爬虫笔记_

爬虫简介 爬虫初始深入 爬虫在使用场景中的分类 通用爬虫&#xff1a; 抓取系统重要组成部分。抓取的是一整张页面数据 聚焦爬虫&#xff1a; 是建立在通用爬虫的基础上。抓取的是页面中特定的局部内容。 增量式爬虫 监测网站中数据更新的情况。只会抓取网站中最新更新出来的…

unity学习第1天

本身也具有一些unity知识&#xff0c;包括Eidtor界面使用、Shader效果实现、性能分析&#xff0c;但对C#、游戏逻辑不太清楚&#xff0c;这次想从开发者角度理解游戏&#xff0c;提高C#编程&#xff0c;从简单的unity游戏理解游戏逻辑&#xff0c;更好的为工作服务。 unity201…

Linux内核编译机制

文章目录 KconfigKconfig语法 KbuildMakefile Linux内核的编译主要过程&#xff1a;配置、编译、安装。 配置主要由Kconfig提供图形界面完成编译主要基于Kbuild编译系统&#xff0c;执行make完成编译安装主要也是基于Kbuild提供的脚本&#xff0c;然后执行make完成安装 Kconf…

【需求侧响应】综合能源中多种需求响应——弹性电价、可平移及可削减研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Java 函数式编程思考 —— 授人以渔

引言 最近在使用函数式编程时&#xff0c;突然有了一点心得体会&#xff0c;简单说&#xff0c;用好了函数式编程&#xff0c;可以极大的实现方法调用的解耦&#xff0c;业务逻辑高度内聚&#xff0c;同时减少不必要的分支语句&#xff08;if-else&#xff09;。 一、函数式编…

Openresty(二十一)ngx.balance和balance_by_lua灰度发布

一 openresty实现灰度发布 ① 灰度发布 说明&#xff1a; 早期博客对灰度发布的概念进行解读,并且对原生 nginx灰度实现进行讲解后续&#xff1a; 主要拿节点引流的灰度发布,并且关注gray灰度策略 相关借鉴 ② 回顾HTTP反向代理流程 ngx_http_upstream 可操作点&#…

数据结构与算法之树、森林与二叉树的转换(手绘)

树、森林与二叉树的转换 树、森林与二叉树的转换树转换成二叉树原则&#xff1a;步骤展示连线给出除长子外的结点去线层次调整 森林转换成二叉树原则步骤展示根据树转换成二叉树的原则将每颗树转变成二叉树第 n 棵树作为第 n-1 棵树根节点的右子节点 二叉树转换成树原则步骤展示…

KDM CCA Secure FHE

参考文献&#xff1a; [BFM88] Blum M, Feldman P, Micali S. Non-interactive zero-knowledge and its applications[M]//Providing Sound Foundations for Cryptography: On the Work of Shafi Goldwasser and Silvio Micali. 2019: 329-349.[FS90] Feige U, Shamir A. Witn…

智能合约漏洞案例,Euler Finance 1.96 亿美元闪电贷漏洞分析

智能合约漏洞案例&#xff0c;Euler Finance 1.96 亿美元闪电贷漏洞分析 2023 年 3 月 13 日上午 08:56:35 UTC&#xff0c;DeFi 借贷协议 Euler Finance 遭遇闪电贷攻击。 Euler Finance 是一种作为无许可借贷协议运行的协议。其主要目标是为用户提供各种加密货币的借贷便利。…

免单商城系统小程序开发源码功能解析

商品免单是现在很多商家喜欢做的一种营销活动&#xff0c;市面上几乎所有商家都是利用免单系统进行免单活动的&#xff0c;但大部分的免单系统仅仅只有排队免单功能&#xff0c;免单的周期长类目单一。我们的免单系统是将获客、拉新、留存、转化集于一身&#xff0c;多种免单拓…

什么是Java中的“内存屏障“(Memory Barrier)?它们有什么作用?

内存屏障是一种用于控制内存访问顺序的指令。在多核处理器上运行的多线程程序可能会因处理器的乱序执行和缓存一致性问题而导致意外的行为。内存屏障可以用来强制某些操作的顺序&#xff0c;以确保线程间的正确协同。 作用包括&#xff1a; 保证写入的可见性&#xff1a;内存…

前缀和实例4(和可被k整除的子数组)

题目&#xff1a; 给定一个整数数组 nums 和一个整数 k &#xff0c;返回其中元素之和可被 k 整除的&#xff08;连续、非空&#xff09; 子数组 的数目。 子数组 是数组的 连续 部分。 示例 1&#xff1a; 输入&#xff1a;nums [4,5,0,-2,-3,1], k 5 输出&#xff1a;7 …