qt经典界面框架

目的

其实就是一个简单的界面显示,是很常用的形式。

说起来简单也是简单,但当初,刚开始做时,感觉非常的复杂,不知如何下手。

现在感觉简单多了。

这个框架利用了QT的现成的MainWindow与QDockWidget,这样就很轻松拥有了界面上的组件。

然则,这离系统要加菜单之类的东西,边界的设置,还是有差距的。

这就用到了,QT的界面组合。

QT的界面可以任意的组合,就像搭建积木一样。

情况

界面:

这一个界面很简单,里面有很多可以扩充的地方,扩充好了,就是一个非常漂亮的系统,上面只是一个界面的架子,其它的东西,包括界面,可以任意向里面填充。

最外层是一个 widget,其包含了MainWindows

关键代码如下:

cpp 复制代码
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

cpp 复制代码
oid MainWindow::initLogView()
{
    if (nullptr == m_logView)
    {
        m_logView = new QDockWidget(this);
        //set dock widget feature: not move, enable close.
        //|QDockWidget::DockWidgetMovable|QDockWidget::DockWidgetFloatable
        m_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,其里面,又可包含很多窗体,关键代码如下:

cpp 复制代码
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

相关推荐
xcLeigh6 小时前
IoTDB JDBC 完整使用教程:连接、查询、批处理与字符集配置
开发语言·数据库·qt·iotdb·查询·批处理·连接
郝学胜-神的一滴7 小时前
Qt 高级开发 005: Qt Creator与Visual Studio 项目双向转换
开发语言·c++·ide·qt·程序人生·visual studio
sycmancia10 小时前
Qt——Qt中的事件处理(一)
开发语言·qt
代钦塔拉11 小时前
第二篇:VS2019 + Qt5.9.9 中文乱码实战:源码GB2312不乱码、文件写入与跨平台方案
开发语言·qt
sycmancia13 小时前
Qt中的事件处理(二)
开发语言·qt
hanbr13 小时前
Qt 进阶开发:主窗口、对话框、布局与常用控件全解析
qt
小短腿的代码世界14 小时前
Qt时间日期处理与QTimer高级应用:从毫秒级精度到跨平台定时器的完整架构解析
开发语言·qt·架构
小短腿的代码世界15 小时前
QGC飞控参数系统架构深度解析:从XML到飞控寄存器的参数同步引擎
qt·microsoft·ui
小短腿的代码世界16 小时前
QGC固件升级与引导加载架构深度解析:从Bootloader握手到固件校验的完整流程
qt·性能优化·架构
buhuizhiyuci16 小时前
【QT-百日筑基篇】打完完怪,开始学炼丹, 前往藏书阁寻找对应材料的信息,并前往去寻找对应材料-QT信号和槽
开发语言·qt