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

qt经典界面框架

目的

其实就是一个简单的界面显示,是很常用的形式。
说起来简单也是简单,但当初,刚开始做时,感觉非常的复杂,不知如何下手。
现在感觉简单多了。
这个框架利用了QT的现成的MainWindow与QDockWidget,这样就很轻松拥有了界面上的组件。
然则,这离系统要加菜单之类的东西,边界的设置,还是有差距的。
这就用到了,QT的界面组合。
QT的界面可以任意的组合,就像搭建积木一样。

情况

界面:
在这里插入图片描述

这一个界面很简单,里面有很多可以扩充的地方,扩充好了,就是一个非常漂亮的系统,上面只是一个界面的架子,其它的东西,包括界面,可以任意向里面填充。
最外层是一个 widget,其包含了MainWindows
关键代码如下:

MainView_qss::MainView_qss(QWidget *parent) : QWidget(parent)
{m_mainWindow = new MainWindow();QVBoxLayout *vlayout_main = new QVBoxLayout();this->setLayout(vlayout_main);vlayout_main->setContentsMargins(5,5,5,5);vlayout_main->setSpacing(0);......
}

mainwindow可以显示多窗体,其有包括了三个QDockWidget,部分代码如下:
v

oid MainWindow::initLogView()
{if (nullptr == m_logView){m_logView = new QDockWidget(this);//set dock widget feature: not move, enable close.//|QDockWidget::DockWidgetMovable|QDockWidget::DockWidgetFloatablem_logView->setFeatures(QDockWidget::DockWidgetClosable);m_logView->setAllowedAreas(Qt::BottomDockWidgetArea);m_logView->setWindowTitle("日志输出");m_logView->setMaximumHeight(100*8);//m_logView->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);m_logBody = new QTextEdit(this);//m_logBody->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);m_logView->setWidget(m_logBody);}......
}

工作区的QDocketWidget又包含了QTabWidget,其里面,又可包含很多窗体,关键代码如下:

void MainWindow::initWorkSpaceView()
{if (nullptr == m_workspace){m_workspace = new QTabWidget(this);m_workspace->setWindowTitle("工作区");this->setCentralWidget(m_workspace);......}qDebug() << "工作区 id:" << m_workspace->winId() << ", name:" << m_workspace->windowTitle();
}

总结

说起来简单,不会时,也是很头疼,界面,弄明白了,就很简单了,很简单,上面的事事,可以如下图所示:
在这里插入图片描述
项目链接:https://download.csdn.net/download/maokexu123/89464466

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

相关文章:

  • 微信群聊不见了?掌握这4个技巧轻松找回,简直太爽了
  • Python Type Hint有啥用
  • 【深度学习】基于因果表示学习的CITRIS模型原理和实验
  • CentOS9镜像下载地址加速下载
  • GPT-5:博士级智能的跨越——未来已来,人机共生的新篇章
  • 陶建辉入选 2023 年度“中国物联网行业卓越人物榜”
  • 2024南京国际自有品牌产品博览会
  • 网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇你就是网络安全高手了。
  • 四步轻松搞定!探索字节最新AnimateDiff-Lightning:高质量视频生成的秘密武器!
  • Jenkins定时构建自动化(一):Jenkins下载安装配置
  • 最新国内首码对接app平台汇总,一手项目资源!
  • 掌握 Perl 中的进程间通信:深入探索 IPC 的世界
  • Vite响应Ajax请求
  • 使用Jenkins进行持续集成与部署
  • 【SpringSecurity】认证与鉴权框架SpringSecurity——认证
  • Video-Infinity:利用多设备加速长视频生成
  • 水下机器人ArduSub 固件常用参数
  • AI智能体 | 扣子Coze 工作流中如何嵌入代码,看这一篇就够了
  • Transformer2--Multi-head self-attention
  • 11. Java线程的状态详解
  • ubuntu永久换镜像源详细方法
  • docker部署(第一期)(相关命令)
  • 华为云L实例云服务器部署前后端分离项目全过程记录
  • uniapp - 微信小程序 - 自定义底部tabbar
  • 每日一题——Python实现PAT乙级1030 完美数列(举一反三+思想解读+逐步优化)五千字好文
  • 【C/C++】this指针的概念和作用
  • Spring Bean 的生命周期
  • 锐起RDV5高性能云桌面
  • pandas减少dataframe占用内存的若干方法
  • Ubuntu20.04 64位 安装docker(有问题可评论沟通交流)