news 2026/4/16 18:27:09

QGridLayout 网格布局构建一个数字键盘布局

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QGridLayout 网格布局构建一个数字键盘布局

QGridLayout

一个方方正正的网格布局,

它适合排布那些横平竖直的多行列内容,

比如数字键盘,

就很适合用网格布局来处理

1 成品示例

2 代码实现

数据键盘有5行4列,

每个按键占据一个网格,

其中有三个按键不太安分。

0键要横跨两列,

加号和回车键要竖跨两行。

满足,必须满足。

代码实现:

QGridLayout *layout = new QGridLayout; layout->setMargin(0); layout->setSpacing(0); //第一行 QPushButton *btnNumLk = new QPushButton("Num LK"); QPushButton *btnDiv = new QPushButton("/"); QPushButton *btnMul = new QPushButton("*"); QPushButton *btnSub = new QPushButton("-"); layout->addWidget(btnNumLk, 0, 0); layout->addWidget(btnDiv, 0, 1); layout->addWidget(btnMul, 0, 2); layout->addWidget(btnSub, 0, 3); //第二行 QPushButton *btn7 = new QPushButton("7"); QPushButton *btn8 = new QPushButton("8"); QPushButton *btn9 = new QPushButton("9"); layout->addWidget(btn7, 1, 0); layout->addWidget(btn8, 1, 1); layout->addWidget(btn9, 1, 2); //第三行 QPushButton *btn4 = new QPushButton("4"); QPushButton *btn5 = new QPushButton("5"); QPushButton *btn6 = new QPushButton("6"); layout->addWidget(btn4, 2, 0); layout->addWidget(btn5, 2, 1); layout->addWidget(btn6, 2, 2); //第四行 QPushButton *btn1 = new QPushButton("1"); QPushButton *btn2 = new QPushButton("2"); QPushButton *btn3 = new QPushButton("3"); layout->addWidget(btn1, 3, 0); layout->addWidget(btn2, 3, 1); layout->addWidget(btn3, 3, 2); //第五行 QPushButton *btn0 = new QPushButton("0"); QPushButton *btnDot = new QPushButton("."); layout->addWidget(btn0, 4, 0, 1, 2); layout->addWidget(btnDot, 4, 2); //第四列 QPushButton *btnAdd = new QPushButton("+"); QPushButton *btnEnter = new QPushButton("Enter"); layout->addWidget(btnAdd, 1, 3, 2, 1); layout->addWidget(btnEnter, 3, 3, 2, 1); this->setLayout(layout);

看下效果:

好像和预期的不太一样是吧!

这是因为按钮的大小被限制了,

这样布局会老老实实的按照按钮的限制,

怎么帮按钮界限突破下呢?

直接看代码:

//批量修改按钮大小 QList<QPushButton *> allPButtons = findChildren<QPushButton *>(); for(auto btn : allPButtons) { if(btn->text() == "+" || btn->text() == "Enter") btn->setMinimumSize(60,120); else btn->setMinimumSize(60,60); btn->setMaximumHeight(6000); }

findChildren很方便的获取所有按钮,

然后依次给按钮设置最小值和最大值。

再来看界限突破后的样子

这样就可以了!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:04:56

2026本科生必看!10个降AI率工具测评榜单

2026本科生必看&#xff01;10个降AI率工具测评榜单 2026年本科生降AI率工具测评&#xff1a;为什么你需要这份榜单&#xff1f; 随着高校对学术原创性的要求日益严格&#xff0c;AIGC检测技术不断升级&#xff0c;传统的“同义词替换”方法已难以满足降AI率的需求。许多学生在…

作者头像 李华
网站建设 2026/4/16 9:05:04

G-Helper终极指南:华硕笔记本性能优化的轻量级利器

G-Helper终极指南&#xff1a;华硕笔记本性能优化的轻量级利器 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: …

作者头像 李华
网站建设 2026/4/16 12:37:35

GHelper:让ROG笔记本告别臃肿,重获性能自由

GHelper&#xff1a;让ROG笔记本告别臃肿&#xff0c;重获性能自由 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地…

作者头像 李华
网站建设 2026/4/16 9:07:04

DownKyi完整教程:一站式掌握B站视频下载技巧

DownKyi完整教程&#xff1a;一站式掌握B站视频下载技巧 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;。 …

作者头像 李华
网站建设 2026/4/16 9:04:35

智慧医疗管理系统设计与实现 毕业设计 毕业论文

阅读提示 博主是一位拥有多年毕设经验的技术人员&#xff0c;如果本选题不适用于您的专业或者已选题目&#xff0c;我们同样支持按需求定做项目&#xff0c;论文全套&#xff01;&#xff01;&#xff01; 博主介绍 CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者…

作者头像 李华
网站建设 2026/4/16 9:06:54

Google Cloud Text-to-Speech对比:IndexTTS更懂中文语境

Google Cloud Text-to-Speech对比&#xff1a;IndexTTS更懂中文语境 在短视频、虚拟主播和有声内容爆发的今天&#xff0c;语音合成早已不再是“把文字念出来”那么简单。观众对声音的情绪张力、节奏把控甚至音画同步精度的要求越来越高——一句旁白慢了半秒&#xff0c;可能就…

作者头像 李华