Qt布局与分割器QSplitter
Qt的布局方式主要有四种:
QGridLayout 栅格布局
QFormLayout 表格布局
QHBoxLayout 水平布局
QVBoxLayout 垂直布局
然而,只通过以上四种布局的组合似乎不太好用, 因此需要搭配分割器QSplitter, 在QSplitter中实现局部布局,最后再放进主布局中可以实现非常好的效果.
/* ****************************************************************** * 函数名称 : initLayout * 函数功能 : 初始化窗口布局 * 函数参数 : 无 * 返回值 : 无 ****************************************************************** */ void QFriendManager::initLayout() { //创建主布局VBoxLayout QVBoxLayout *mainLayout = new QVBoxLayout(); //创建主Splitter QSplitter *splitterMain = new QSplitter(Qt::Vertical, this); //添加标题标签和表格部件到主Splitter tableWidget = new QTableWidget(splitterMain); tableWidget->setMinimumHeight(120); //创建底部工具栏Splitter,父亲为主Splitter QSplitter *splitterBottom = new QSplitter(Qt::Horizontal, splitterMain); check_selectAll = new QCheckBox(QObject::tr("全选"), splitterBottom); pb_delete = new QPushButton(QObject::tr("删除"), splitterBottom); pb_find = new QPushButton(QObject::tr("查找"), splitterBottom); le_find = new QLineEdit(splitterBottom); check_selectAll->setFixedSize(48, 32); pb_delete->setFixedSize(48, 32); pb_find ->setFixedSize(48, 32); //禁用Splitter拉伸效果 splitterMain->handle(1)->setDisabled(true); splitterBottom->handle(1)->setDisabled(true); splitterBottom->handle(2)->setDisabled(true); splitterBottom->handle(3)->setDisabled(true); //设置窗口边沿宽度 mainLayout->setContentsMargins(2,5,2,5); //添加主Splitter到主布局VBoxLayout mainLayout->addWidget(splitterMain, 0); this->setLayout(mainLayout); }
|
http://blog.csdn.net/jan5_reyn/article/details/38955709
分类:
Qt-Layout
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix