QT浏览器学习之二:浏览器主界面(1)

 

原创文章,转载请注明出处,谢谢!
作者:清林,博客名:飞空静渡

 

这里的浏览器的制作是参考易简浏览器来制作的,在查看了易简浏览器的源代码0.45版本后,一步一步构建一个易简浏览器。

易简浏览器遵循GPL来发布,具体可以到易简浏览器主页上下载源代码来查看(http://eazy.uueasy.com/),在写这篇文章时,最新的是0.47版,但现在使用的是0.45版。

 

这个主界面只是一个未完成的简单的主界面,遵循着一步步构建的步骤,由简单到复杂,最后完成一个浏览器的步骤。

这步的浏览器,没有设计网页,只是一个简单的框架。下一步会构建复杂点的主界面,一步步的添砖加瓦,这也是学习的最好步骤。

 

我这里的易简浏览器代码和原作者的源代码有些不一样,所以在看我的代码时,要注意一点。代码不单是要看,要抄,还会要修改,这样才会学得到。

 

开发工具:Qtcreator。

 

这一个步骤的主界面如下:

 

下面是代码的简单说明:

主界面是一个MainWindow的类:

mainwindow.h:

 

主界面的构建如下:

 

由上面的代码可以看到,主界面用

setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint); // no Boarder

去掉了标题栏。

 

其头部有这几个结构组成:

一个QDockWidget的pMainDockWidget,这个是主的widget,所有widget都在这上面,所以最后会setCentralWidget(pMainDockWiget);

 

主widget会添加一个

m_pTopTab = new TabToolBar(this, this);
pMainDockWiget->setTitleBarWidget(m_pTopTab);

这是一个网页浏览的tab,这里还没添加实现代码。

 

下面是一个工具栏,工具栏嵌在QMainWindow中:

QMainWindow *pMainWindow = new QMainWindow(this);
m_pMainToolBar = new ToolBar(this);
pMainWindow->addToolBar(m_pMainToolBar);
pMainDockWiget->setWidget(pMainWindow);

 

移动界面靠

void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);

 

在void mouseMoveEvent(QMouseEvent *event)中:

 

靠 m_dragPos.y() < 20 这句判断限制只有在头部才可以移动整个界面,这和易简的代码不一样。

移动时如果界面是最大化,则缩小到其前一个状态时的大小。

 

源代码下载地址:http://download.csdn.net/source/3236209

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值