[Solved]creating tabs
-
can i do somethin like this/?
@
tabWidget->widget(1)->connect(tabWidget->widget(1),SIGNAL(clicked()),this,SLOT(showHistoryFrm()));
@ -
bq. Now im tryin to put the same thing into the tab. ie when I click the history tab, it should go to the history form
This is my function which opens the history formWhat I meant is this is not good GUI design in my opinion. People using your program don't expect to click on a Tab to open a form. If I were you I would stick to the button solutions which you already have. There you can add icon/text saying "this buttons opens form..." or whatever you like. It will be more straightforward.
BTW : the tabwidget doesn't have a clicked signal. I think it's intended that way for the reason I tried to explain. -
connect() function was automatically shown when i typed in tabWidget->widget(1) so there should be some function right?
does tabwidget have any other signals tht can be used?
well, i need to show the some history data when the history tab is pressed :( :( any other options than buttons?? It will look odd if there is jus a button in the history tab which when clicked will shoe the historyform :(
alfah
-
bq. well, i need to show the some history data when the history tab is pressed :( :( any other options than buttons?? It will look odd if there is jus a button in the history tab which when clicked will shoe the historyform :(
why not put that form in that tab instead?
yes there are other signals of course. The best way to find them is to use Qt Designer and use the "Edit signals slots" button or F4 to see them. for more info see the QT Designer manual.
-
to put the form in the tab meaning??
-
If you only have a button in the Tab and the only purpose for that button is to open another form, then you could eliminate that button and show the widgets immediately in your Tab.
If you don't understand what I'm saying, maybe you could show us an image of your form and an image of the tab where the button is in?
-
I found a signal currentChanged for TabWidget, but i cant find out how to use it?
Any idea???
docs said
Qt Signal Documentation
@void currentChanged (int)
@
This is the default overload of this signal.This signal is emitted whenever the current page index changes. The parameter is the new current page index position, or -1 if there isn't a new one (for example, if there are no widgets in the QTabWidget)
-
currentChanged will be invoked anytime you click on another tab than the current one. I don't think that is what you want or is it?
-
:(
yeaa u r right.
I tried using the following code, but then the same form is shown when both statics tab as well as the history tab is clicked even though i have connected two different forms
:(
@
tabWidget->widget(1)->connect(tabWidget,SIGNAL(currentChanged(int)),this,SLOT(showHistoryFrm()));
tabWidget->widget(2)->connect(tabWidget,SIGNAL(currentChanged(int)),this,SLOT(showOptionFrm()));
@alfah
-
I think I don’t understand what you want exactly, maybe you could show us an image of your form ?
-
Rather than creating a new thread I thought its better this way,
@
tabWidget->setTabIcon(0,QIcon(":images\clock.png"));
@
The above code should set an icon in the first tab right?? But apparently its not!. I've put the image in the resource file.
???any idea
alfah
-
I think you missed a ""
Try this :
@tabWidget->setTabIcon(0,QIcon(":\images\clock.png")); @ -
'' did not do the trick :(
-
@tabWidget->setTabIcon(0,QIcon(":/images/clock.png")); @
works for me on the simulator.
the / or \ depends on your OS
-
ahhh, , its not workin on the simulator or the device!!
it is '/'. And i have corrected it. But still it does not work. Does image size gotta do anything with it??
ive used 16x16. its almost 900 byte -
you can test if it's available from the resource editor using a dialog in Qt Designer and set the icon from there.
-
Ive pulled in a tabWidget in the Designer. But i can only find iconsize property not the simple icon property with which you can set.
-
no you have to use code to add it to a tab.
But you could use a QLabel just for testing if the icon is reachable through the resource editor.
-
it worked in the new project, both in the device as well as the simulator.
@
ui->tabWidget->setTabIcon(0,QIcon(":/images/clock.png"));
@I think i know why it doesn work on my application.
@
tabWidget = new QTabWidget;
tabWidget->setStyleSheet("QTabWidget::tab-bar{left:0px; width:350px; }\n"
"QTabBar::tab{height:40px; width:95px; color:red; font:9pt; }\n");
tabWidget->setTabIcon(0,QIcon(":/images/clock.png"));pCalender = new QWidget;
pHistory = new QWidget;
pStatistics= new QWidget;connect(tabWidget,SIGNAL(currentChanged(int)),this,SLOT(onSelectTab(int)));
tabWidget->addTab(pCalender,tr("Calender"));
tabWidget->addTab(pHistory,tr("History"));
tabWidget->addTab(pStatistics,tr("Statistics"));
tabWidget->setTabIcon(0,QIcon(":/images/clock.png"));
@EDIT : solved :D
-
bq. it worked in the new project, both in the device as well as the simulator.
so you know a good approach to solve issues yourself. Sometimes a project can grow bigger and bigger. If you make a small test project like you did you can easily narrow down to the problem. Now you know for sure that the code is right.
bq. EDIT: na i don think so, cuz widgets are placed inside the tabs not on those heading.
To be sure just comment out the lines you suspect. This one is for you ;)