要求實現多個頁面之間的切換打算採用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 ...