要求實現多個頁面之間的切換打算採用tab頁來管理多個頁面,並隱藏tab頭main.cpp#include mytab.h
#include
int main(int argc, char *ar**)
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)
m_mappageindex.insert(mappageindex::value_type(e_main_page, nindex));
//m_mappageindex[e_main_page] = nindex;
nindex = m_tabwidget.addtab(&m_pageset,tr(pageset));
if (nindex != -1)
m_mappageindex.insert(mappageindex::value_type(e_set_page, nindex));
//m_mappageindex[e_set_page] = nindex;
nindex = m_tabwidget.addtab(&m_pageend,tr(pageend));
if (nindex != -1)
m_mappageindex.insert(mappageindex::value_type(e_end_page, nindex));
//m_mappageindex[e_end_page] = nindex;
//顯示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;
#endifpageset和pageend與pagemain較為相似 不進行上傳1.tab中的widget必須要有父類(否則可能會出現問題)
2.專案牽涉到由型別找tab索引和tab索引查詢型別 故使用了boost的bimap來實現雙向查詢
qt使用tab管理多個介面
要求實現多個頁面之間的切換打算採用tab頁來管理多個頁面,並隱藏tab頭main.cpp include mytab.h int main int argc,char argv mytab.h ifndef mytab h define mytab h include include include...
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 ...