123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #include "WindowRuntimeView.h"
- #include "WindowAppDesignerView.h"
- #include "selectwidget.h"
- WindowRuntimeView::WindowRuntimeView(QWidget *parent)
- : QWidget(parent)
- {
- // 初始化Logo贴图
- this->initLogoImage();
- }
- WindowRuntimeView::~WindowRuntimeView()
- {
- }
- /// <summary>
- /// 初始化Logo贴图
- /// </summary>
- void WindowRuntimeView::initLogoImage()
- {
- m_pLogoImage = new QPixmap(64, 64);
- m_pLogoImage->load("./image/logo64.png");
- }
- /// <summary>
- /// 发布对应的页面
- /// </summary>
- /// <param name="pPage"></param>
- /// <param name="bMainPage"></param>
- /// <returns></returns>
- bool WindowRuntimeView::runPage(WindowAppDesignerView* pPage, bool bMainPage /* = false */)
- {
- // 首先创建一个等尺寸的窗体
- // 枚举该页面所有的控件,照着复制一份到Runtime窗体中
- QList<SelectWidget*> pControls = pPage->getAllControls();
- // 如果不是主页的话,界面先不显示,等着从主页切换时才显示
- return true;
- }
- /// <summary>
- /// 绘制界面背景
- /// </summary>
- /// <param name=""></param>
- void WindowRuntimeView::paintEvent(QPaintEvent*)
- {
- QRect rc = this->geometry();
- // 在当前界面的右上角显示logo
- QPainter painter(this);
- painter.drawPixmap(rc.right() - 100, rc.top(), 64, 64, *m_pLogoImage);
- }
- /// <summary>
- /// 启动所有的UI界面(目前先只支持启动所有页面的方式)
- /// </summary>
- void WindowRuntimeView::runAll(
- WindowAppDesignerView* pMainPage,
- QHash<QString, WindowAppDesignerView*> allPages
- )
- {
- // 首先发布主页
- runPage(pMainPage);
- // 根据每一个 WindowAppDesignerView 生成对应的页面,并且把所有的控件都分布上去
- QHashIterator<QString, WindowAppDesignerView*> it(allPages);
- while (it.hasNext())
- {
- runPage(it.next().value());
- }
- }
|