[Solved]tab size



  • hi

    Im facing a little trouble as to how arrange the GUI elements. I have a form in which a calender is created with each date as a push button.

    I need somethin like three option button at the top to go to three different menus, somethin like a tool bar with icons. Can we use the system buttons like those provided by samsung? Or using a tab widget is better.

    I pulled in a default tab widget. But i cant change the size of each tab in the designer.

    alfah


  • Moderators

    I think "this snippet":http://developer.qt.nokia.com/wiki/CustomTabBar is usefull for you.



  • Thanks eddy,

    i have managed to use the tabs. i have put a tab widget named tabWidget with 3 tabs to an already existing form using the designer

    The problem is, the calender is displayed in all the three tabs. i jus want it to be there while clicking any one of the tabs
    Or do i have to create a tabwidget manually than using the designer?????????????
    this is how i have created the calender buttons
    @
    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);
    
        }
    }
    

    @

    regards,
    alfah


  • Moderators

    You can use Qt Designer to add a tabwidget, drag a QCalendar to the first, drag something else to the second and so on.
    You can insert additional pages using RMB > Insert Page.

    Can you show your code where you add the Calendar to the TabWidget?



  • eddy,

    I have already made a calender, in the sense, somthing like a custom calender.
    and the tabwidget is jus the default designer one.
    I cant figure out how to put the buttons/calender as whole on to the tab :(

    I have used
    @
    ui->setupUi(this);

    initMemberVariable();// here buttons are created- 30/31 days
    
    initMonthYear();// defining each month
    
    initWeekDay();// arranging the week display
    
    createLayout();// arranging the whole layout
    

    @

    alfah


  • Moderators

    I would expect you make a class for your custom widget and then you add an instance to a specific tab widget page.
    As I see your code, I guess you don't have a class?



  • @
    CalenderForm::CalenderForm(QWidget *parent): QMainWindow(parent), ui(new Ui::CalenderForm)
    {
    ui->setupUi(this);

    initMemberVariable();
    
    initMonthYear();
    
    initWeekDay();
    
    createLayout();
    

    }
    @

    this class has few other functions defined too.
    could u elaborate on ur earlier explanation, i could not follow :(

    alfah


  • Moderators

    You are inheriting from QMainWindow. I would rather use a QWidget. Can you show your header file?



  • @

    ifndef CALENDERFORM_H
    #define CALENDERFORM_H

    #include <QtGui/QMainWindow>
    #include <QWidget>
    #include <QDate>
    #include <QtGui>
    namespace Ui
    {
    class CalenderForm;
    }

    class CalenderForm : public QMainWindow
    {
    Q_OBJECT

    public:
    
    explicit CalenderForm(QWidget *parent = 0);
    virtual ~CalenderForm();
    
    private:
    
    Ui::CalenderForm *ui;
    int monthValue;
    
    int iArrCycleStage[6][7];
    int iArrDates[6][7],ht,wd;
    QString strArrayNotes[6][7];
    QDate selectedDate;
    QGridLayout *controlsLayout;
    QLabel *monthDisplay,*yearDisplay,*weekDisplay[7];
    QHBoxLayout *weekLayout;
    QPushButton *cellBut[6][7],*button;
    QLabel *pLabelDateDisplay,*pLabelStatus;
    QString strPreviousSelection;
    

    private slots:
    }
    @

    alfah


  • Moderators

    As I said I would subclass from QWidget.

    In Qt Designer you can put a QWidget in the tab you like as a placeholder and then promote it to your CalenderForm. When compiling the QWidget will be considered as a CalenderForm and shown that way.

    Here is a "similar topic":http://developer.qt.nokia.com/forums/viewthread/8334/#48778 on how to promote a QFrame to a custom widget. Use a QWidget instead and your CalenderForm.


  • Moderators

    have a look at "this example":http://doc.qt.nokia.com/4.7/dialogs-tabdialog.html . it uses a QTabWidget and a class derived from QWidget to populate it.



  • Hello everyone,

    I have a doubt regarding the tab size. The 3 tabs that I've created does not entirely fill up the screen. How can i expand the tabs to fill the screen????

    alfah



  • :) i found the way too. simple, set its stylesheet :)

    @
    tabWidget->setStyleSheet("QTabBar::tab{height:60px; width:160px}");
    @


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.