나는 위젯을 많이 포함 할 QGridLayout
입니다. 루프가 너무 많은 위젯을 추가하고 페이지에 모두 들어갈 수없는 문제가 발생했습니다. 스크롤 막대를 추가하고 싶지만 올바르게 표시되지 않습니다.Qt의 격자 레이아웃에 스크롤 막대를 추가하는 방법은 무엇입니까?
이 기능은 메인 레이아웃에 추가 탭, 그것은 그리드 레이아웃을 포함 반환
QTabWidget *RegistersTab::createTab()
{
QTabWidget *tab = new QTabWidget(this);
std::vector<QGridLayout*> loVec; //to add to master layout
for(int i=0; i<2; i++) //number of pages
{
QWidget *client = new QWidget(this); //this part breaks it
QScrollArea *scrollArea = new QScrollArea(this);
scrollArea->setWidget(client);
QTabWidget *tabPage = new QTabWidget(client);
QGridLayout *loGrid = new QGridLayout(client);
tabPage->setLayout(loGrid);
QString title = QString("Page %1").arg(i);
tab->addTab(tabPage, title);
loVec.push_back(loGrid);
}
m_loGridVec.push_back(loVec);
return tab;
}
GridLayout
벡터가 그래서 위젯을 추가 할 수 있으며 나중에 조작입니다. 지금은 탭 상단에 회색 상자가 생기므로 뭔가 문제가 발생합니다. 스크롤 영역을 제거하고 (client)
을 (this)
으로 설정하면
나는 간단한 수정이 필요하다고 생각하니?
EDIT (탭이 어떻게 만들어 지는지) :
ui->lo->addWidget(m_tab);
m_tab->addTab(createTab(), title); // m_tabCbc is a QTabWidget;
당신은 어디서나 스크롤 영역을 추가하지 않는 :
그것은이 같은해야한다. 'QTabWidget' ('this') 안에있을 것입니다. 내가 알 수있는 한, 그것은 어떤 페이지 안에 있어야합니다. 그러나 다른 탭 위젯을 페이지로 추가하고 있습니다. 또한 이상한 이유로 레이아웃을 레이아웃에 설정하고 있습니다. 'tabPage'는 단지'QWidget'이 아니어야합니까? – thuga
실제로 중첩 탭이 있습니다. 그래서 각각에 "i"서브 시스템이 들어있는 "N"개의 모듈이 있다고 가정하면 중첩 된 탭이 필요합니다. 그 부분이 작동, 난 그냥 스크롤바에 미끄러 져하는 방법을 알아낼 수 없다 – fiz
그럼 난 스크롤 영역은 어딘가에 하위 탭 페이지에 있어야한다고 가정합니다. 'tabPage' 위젯을위한 페이지를 추가하고 그 레이아웃 안에 스크롤 영역을 추가해야합니다. – thuga