qt使用tab管理多個介面

2021-07-03 23:31:40 字數 2686 閱讀 3853

要求實現多個頁面之間的切換打算採用tab頁來管理多個頁面,並隱藏tab頭main.cpp

#include "mytab.h"

int main(int argc, char *argv)

mytab.h
#ifndef mytab_h

#define mytab_h

#include

#include

#include "ui_mytab.h"

#include "pagemain.h"

#include "pageend.h"

#include "pageset.h"

#include "mydefine.h"

#include

#include

class mytab : public qmainwindow

;#endif // mytab_h

mytab.cpp
#include "mytab.h"

#include

#include

#include

#include

#include

mytab::mytab(qwidget *parent)

: qmainwindow(parent), m_pagemain(parent),m_pageset(parent),m_pageend(parent)

mytab::~mytab()

void mytab::init()

""qtabwidget::tab-bar"

"qtabbar::tab"

"qtabbar::tab:hover"

"qtabbar::tab:selected");

//隱藏qtabwidget,否則主視窗被覆蓋

//m_tabwidget.hide();

//隱藏tab

m_tabwidget.tabbar()->hide();

//設定tab可關閉

m_tabwidget.settabsclosable(true);

//新增tab

int nindex = -1;

nindex = m_tabwidget.addtab(&m_pagemain,tr("pagemain"));

if (nindex != -1)

nindex = m_tabwidget.addtab(&m_pageset,tr("pageset"));

if (nindex != -1)

nindex = m_tabwidget.addtab(&m_pageend,tr("pageend"));

if (nindex != -1)

//顯示qtabwidget

m_tabwidget.show();

qrect rtclient = this->geometry();

m_tabwidget.setgeometry(rtclient);

m_pagemain.setgeometry(rtclient);

pagechange(e_main_page);

}void mytab::resizeevent(qresizeevent * event)

void mytab::resize()

void mytab::pagechange(e_tab_page page)

}e_tab_page mytab::pagetype()

return page;

}

pagemain.h
#ifndef pagemain_h

#define pagemain_h

#include

#include "ui_pagemain.h"

#include "mydefine.h"

class pagemain : public qwidget

;#endif // pagemain_h

pagemain.cpp
#include "pagemain.h"

#include "mytab.h"

#include

pagemain::pagemain(qwidget *parent)

: qwidget(parent)

pagemain::~pagemain()

void

pagemain::on_endbutton_clicked()

void

pagemain::on_setbutton_clicked()

void

pagemain::on_typebutton_clicked()

}void

pagemain::init(qwidget *pparent)

mydefine.h
#ifndef my_define_h

#define my_define_h

typedef enum etabpages

e_tab_page;

#endif

pageset和pageend與pagemain較為相似 不進行上傳1.tab中的widget必須要有父類(否則可能會出現問題)

2.專案牽涉到由型別找tab索引和tab索引查詢型別 故使用了boost的bimap來實現雙向查詢

qt使用tab管理多個介面

要求實現多個頁面之間的切換打算採用tab頁來管理多個頁面,並隱藏tab頭main.cpp include mytab.h include int main int argc,char ar mytab.h ifndef mytab h define mytab h include include i...

Qt多個ui介面的使用例項

首先新增ui檔案,右鍵專案名 新增新檔案 qt qt designer form 在新加的ui檔案中新增自己需要的控制項 編譯一下專案,在工程檔案下回生成乙個ui xx.h格式的標頭檔案 給新建的ui檔案新增類,右鍵專案名 新增新檔案 c c class,類的內容大體如下 ifndef test h...

Qt多個ui介面,如何建立聯絡

一 最簡單的方法 無非就是你建了多個ui介面,然後你只需要new它,獲得它的位址資訊,就可以建立聯絡了,如下 在mainwindow.c新增,然後mainwindow.c就可以跟test1和test2建立聯絡了 testone new test1 testtwo new test2 testtwo ...