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

Vs - Qt - 下拉窗口示例

下列代码定义了一个窗口,窗口采用竖直布局:一个按钮及一个label。按下按钮时候,窗口扩张,显示label控件。再次按下按钮时,窗口收缩,隐藏label控件。

详细代码如下:

#include <QApplication>
#include <QWidget>
#include <QHBoxLayout>
#include <QTimer>
#include <QLabel>
#include <QVBoxLayout>
#include <QPushButton>
#include <QDebug>class MyWidget : public QWidget
{//Q_OBJECT
public:MyWidget(QWidget* parent = nullptr) : QWidget(parent), m_bD(true){setFixedWidth(100);//	setStyleSheet("background-color:red;");m_vLayout = new QVBoxLayout();m_vLayout->setContentsMargins(0, 0, 0, 0);setLayout(m_vLayout);m_hLayout = new QHBoxLayout();m_pushBtn = new QPushButton("d!", this);m_pushBtn->setFixedSize(20, 20);m_hLayout->addStretch(1);m_hLayout->addWidget(m_pushBtn);m_vLayout->addLayout(m_hLayout);m_label = new QLabel(this);m_label->setText("just a label text!");m_vLayout->addWidget(m_label);m_vLayout->addStretch(1);//setFixedHeight(m_pushBtn->height() + m_label->height());setFixedHeight(m_pushBtn->height());m_label->hide();QObject::connect(m_pushBtn, &QPushButton::clicked, [=]() {if (m_bD){//m_vLayout->addWidget(m_label);m_label->show();m_pushBtn->setText("d!");qDebug() << "push btn h:" << m_pushBtn->height() << ", label h:" << m_label->height();setFixedHeight(m_pushBtn->height() + m_label->height());m_bD = false;}else{m_bD = true;//m_vLayout->removeWidget(m_label);m_label->hide();m_pushBtn->setText("p!");qDebug() << "push btn h:" << m_pushBtn->height() << ", label h:" << m_label->height();setFixedHeight(m_pushBtn->height());}});}private:QHBoxLayout* m_hLayout;QPushButton* m_pushBtn;bool m_bD;QVBoxLayout* m_vLayout;QLabel *m_label;
};int main(int argc, char** argv)
{QApplication app(argc, argv);MyWidget w;w.show();return app.exec();
}

页面效果如下:
请添加图片描述

http://www.lryc.cn/news/187576.html

相关文章:

  • 深圳自贸区的形成与发展
  • 机器人中的数值优化(二十一)—— 伴随灵敏度分析、线性方程组求解器的分类和特点、优化软件
  • BACnet /IP转MQTT网关
  • Web API 基础 (Web Workers API)
  • 如何看待程序员不写注释?
  • 2.6 方法
  • 【排序算法】插入排序
  • Gnuradio+AM解调
  • 解决java.io.IOException: Broken pipe的报错
  • 微信小程序--》从模块小程序项目案例23.10.09
  • 爱尔眼科角膜塑形镜验配超百万,全力做好“角塑镜把关人”
  • 机器学习DAYX:线性回归与逻辑回归
  • 【网络安全】网络安全的最后一道防线——“密码”
  • unity操作_光源组件 c#
  • 2023年全球市场氮化铝外延片总体规模、主要生产商、主要地区、产品和应用细分研究报告
  • C++特性:继承,封装,多态
  • 交通物流模型 | 基于双向时空自适应Transformer的城市交通流预测
  • 【香橙派-OpenCV-Torch-dlib】TF损坏变成RAW格式解决方案及python环境配置
  • HDMI协议介绍(五)--Audio
  • Centos7中安装Jenkins教程
  • 十一、WSGI与Web框架
  • [idekCTF 2022]Paywall - LFI+伪协议+filter_chain
  • Python 自动化Web测试
  • MM-Camera架构-Preview 流程分析
  • 科普文章|一文了解平行链及其优势
  • Tomcat 9.0.41在IDEA中乱码问题(IntelliJ IDEA 2022.1.3版本)
  • 在Kubernetes中实现gRPC流量负载均衡
  • Floorplanning with Graph Attention
  • centos7 配置coreboot编译环境 以及编译问题解决
  • 大型语言模型:RoBERTa — 一种鲁棒优化的 BERT 方法