[Solved]creating tabs
-
wrote on 3 Aug 2011, 06:39 last edited by
Use this instead of last line in your ctor
@
centralWidget->setLayout(mainLayout);
@ -
wrote on 3 Aug 2011, 06:43 last edited by
denis,
i can jus use centralWidget?? wat is it??
i get the follwing error " invalid use of member".
alfah
-
wrote on 3 Aug 2011, 06:49 last edited by
I think you need to use
@setCentralWidget @ first -
wrote on 3 Aug 2011, 06:53 last edited by
:( it does work tht way either.
-
wrote on 3 Aug 2011, 07:01 last edited by
oops, I meant
@
centralWidget()->setLayout(mainLayout);
@Eddy, looks like it is form created from designer, so central widget should be there.
-
wrote on 3 Aug 2011, 07:02 last edited by
Tabs is the class derived from QMainWindow ? Can you show us the header and part of the code where you instantiate the Tabs class ?
-
wrote on 3 Aug 2011, 07:05 last edited by
:D :D yeaa denis i got it right, Thank you!
so if i want to create buttons in the history tab? how to i go abt it???. I meant how do i acces each tab separately??
alfah
-
wrote on 3 Aug 2011, 07:07 last edited by
Did you use it like this ? :
this is the way moc does it when looking in the ui_tabs.h file
@centralwidget = new QWidget(Tabs); // it is just a temporary name
...
Tabs->setCentralWidget(centralwidget);@@Denis
Yes, you are right!EDIT : too late ;)
-
wrote on 3 Aug 2011, 07:12 last edited by
eddy,
@
Tabs::Tabs(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Tabs)
{
ui->setupUi(this);
tabWidget = new QTabWidget;
tabWidget->addTab(new QWidget,tr("History"));
tabWidget->addTab(new QWidget,tr("Calender"));
tabWidget->addTab(new QWidget,tr("Statistics"));
mainLayout = new QVBoxLayout;
mainLayout->addWidget(tabWidget);
centralWidget()->setLayout(mainLayout);}
@i still do not know how to make individual buttons on each tab :(
alfa
-
wrote on 3 Aug 2011, 07:13 last edited by
have a look at
@indexOf()@ -
wrote on 3 Aug 2011, 07:14 last edited by
@QTabWidget::widget(int index)@ return the tab page.
Then you can create buttons with returned parent. -
wrote on 3 Aug 2011, 07:21 last edited by
u mean tabWidget->indexOf()???
But i have not named each tab:(
-
wrote on 3 Aug 2011, 07:22 last edited by
[quote author="alfah" date="1312355523"]eddy,
@
Tabs::Tabs(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Tabs)
{
ui->setupUi(this);
tabWidget = new QTabWidget;
tabWidget->addTab(new QWidget,tr("History"));
tabWidget->addTab(new QWidget,tr("Calender"));
tabWidget->addTab(new QWidget,tr("Statistics"));
mainLayout = new QVBoxLayout;
mainLayout->addWidget(tabWidget);
centralWidget()->setLayout(mainLayout);}
@i still do not know how to make individual buttons on each tab :(
alfa
[/quote]You can event add custom widgets to the tab widget, so go this way:
@
Tabs::Tabs(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Tabs)
{
ui->setupUi(this);
tabWidget = new QTabWidget;QWidget* pHistory = new QWidget; // fill pHistory here QPushButton* p = new QPushButton(tr("my text"), pHistory); tabWidget->addTab(pHistory,tr("History")); tabWidget->addTab(new QWidget,tr("Calender")); tabWidget->addTab(new QWidget,tr("Statistics")); mainLayout = new QVBoxLayout; mainLayout->addWidget(tabWidget); centralWidget()->setLayout(mainLayout);
}
@ -
wrote on 3 Aug 2011, 07:24 last edited by
in that case use cinrin's solution :
for example :
@ QPushButton* ppp = new QPushButton("testing" );
QHBoxLayout* hhh = new QHBoxLayout();
hhh->addWidget(ppp);
ui->tabWidget->widget(1)->setLayout(hhh);@I set up an example layout for you to control size and position.
EDIT : this time Gerolf was faster ;)
-
wrote on 3 Aug 2011, 08:00 last edited by
gerolf,
yea i could make buttons. Now im working on somethin a bit more complex than a single button.
I have made a calender using an array of buttons, its the same thing like the default calender.Would it be possible to put in the whole calender in to one of the tab, jus as you have created a single button.???
It requires mainly 4 funtions to create the whole calender
@
initMemberVariable();initMonthYear(); initWeekDay(); createLayout();
@
@
bool CalenderForm::initMemberVariable()
{selectedDate=QDate::currentDate(); controlsLayout = new QGridLayout(); monthValue=selectedDate.month(); pLabelStatus=new QLabel; pLabelStatus->setStyleSheet("color:black"); for(int i=0;i<6;i++) { for(int j=0;j<7;j++) { cellBut[i][j]=new QPushButton(this); connect(cellBut[i][j],SIGNAL(clicked()),this,SLOT(onClickAction())); cellBut[i][j]->setFlat(true); } } return true;
}
@This is where the buttons are created. I want them to be created in the calender tab.
Could you guide me on how to go abt it?
alfa
-
wrote on 3 Aug 2011, 08:01 last edited by
eddy :)
yeaa a wee bit faster. could you check on the above posts and give your opinion?
alfah
-
wrote on 3 Aug 2011, 08:10 last edited by
[quote author="Eddy" date="1312356252"]in that case use cinrin's solution :
for example :
@ QPushButton* ppp = new QPushButton("testing" );
QHBoxLayout* hhh = new QHBoxLayout();
hhh->addWidget(ppp);
ui->tabWidget->widget(1)->setLayout(hhh);@I set up an example layout for you to control size and position.
EDIT : this time Gerolf was faster ;)[/quote]
what is widget(1)??
-
wrote on 3 Aug 2011, 08:16 last edited by
[quote author="alfah" date="1312359027"]what is widget(1)??[/quote]
@
QWidget* historyTab = tabWidget->widget(0);
QWidget* calenderTab = tabWidget->widget(1);
QWidget* statisticsTab = tabWidget(2);
@ -
wrote on 3 Aug 2011, 08:25 last edited by
ahh ok,
thanks cincirin -
wrote on 3 Aug 2011, 09:17 last edited by
bq. This is where the buttons are created. I want them to be created in the calender tab.
Could you guide me on how to go abt it?try this
@ QGridLayout* grid = new QGridLayout();
for(int i=0;i<6;i++) { for(int j=0;j<7;j++) { cellBut[i][j]=new QPushButton(QString("%1 , %2").arg(i).arg(j)); connect(cellBut[i][j],SIGNAL(clicked()),this,SLOT(onClickAction())); cellBut[i][j]->setFlat(true); grid ->addWidget(cellBut[i][j],i,j); } } ui->tabWidget->widget(1)->setLayout(grid );@
13/48