Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: IzoLda от Февраль 08, 2011, 13:58



Название: [Qt 3.3.3] toolbar
Отправлено: IzoLda от Февраль 08, 2011, 13:58
Здравствуйте!у меня проблема в том что не показывается toolBar.
toolBar = new QToolBar(tr("File"),this);
   //toolBar->setLabel("Редактирование учетной записи");
   
   QAction *addAction;
   QAction *deleteAction;
   QAction *changeAction;
   
   Table = new QTable(0, 0, this, "user account");
   Table->setNumCols(3);
   Table->setColumnWidth(0, 140);
   Table->setColumnWidth(1, 100);
   Table->setColumnWidth(2, 170);
   QHeader *th = Table->horizontalHeader();
   th->setLabel( 0, tr( "Пользователь" ) );
   th->setLabel( 1, tr( "Пароль" ) );
   th->setLabel( 2, tr( "Уровень доступа" ) );
   
   connect(CancelButton, SIGNAL(clicked()), this, SLOT(close()));
   connect(OkButton, SIGNAL(clicked()), this, SLOT(OkClicked()));

   addAction = new QAction(
      QPixmap((const char**)sta_xpm), tr( "Добавить пользователя" ), CTRL + Key_U, this, "addUser" );
      connect( addAction, SIGNAL( activated() ), this, SLOT( AddClicked() ) );
   
   deleteAction = new QAction(
      QPixmap((const char**)delete_xpm), tr( "Удалить пользователя" ), CTRL + Key_D, this, "deleteUser" );
      connect( deleteAction, SIGNAL( activated() ), this, SLOT( DelClicked() ) );
         
   changeAction = new QAction(
      QPixmap((const char**)commut_xpm), tr( "Изменить пользователя" ), CTRL + Key_G, this, "changeUser" );
      connect( deleteAction, SIGNAL( activated() ), this, SLOT( ChangeClicked() ) );

      addAction->addTo( toolBar );
      deleteAction->addTo( toolBar );
      changeAction->addTo( toolBar );
   
   QVBoxLayout *TLayout = new QVBoxLayout;
   TLayout->addWidget(toolBar);
   TLayout->addWidget(Table);
   
   QHBoxLayout *BLayout = new QHBoxLayout;
   BLayout->addStretch(1);
   BLayout->addWidget(OkButton);
   BLayout->addWidget(CancelButton);
   
   QVBoxLayout *WLayout = new QVBoxLayout(this);
   WLayout->addLayout(TLayout);
   WLayout->addLayout(BLayout);

вы не могли бы подсказать в чем проблема?может я не понимаю принципы работы данного виджета...кнопки и таблица отображаются


Название: Re: toolbar
Отправлено: Пантер от Февраль 08, 2011, 14:01
Пользуйся тегом code. Версия Qt какая? Тройка, что ли? Если нет, то ты забыл void QMainWindow::addToolBar ( QToolBar * toolbar )


Название: Re: toolbar
Отправлено: IzoLda от Февраль 08, 2011, 14:23
ммм...не знаю какая версия...я пишу в нотпаде и компилирую на линуксе...и я не поняла куда добавлять и что за функция?


Название: Re: toolbar
Отправлено: Пантер от Февраль 08, 2011, 14:25
qmake --version что выдает?


Название: Re: toolbar
Отправлено: IzoLda от Февраль 08, 2011, 14:36
version: 1.07a (Qt 3.3.3)


Название: Re: toolbar
Отправлено: Пантер от Февраль 08, 2011, 14:43
Qt 3.3.3
Тут я помочь не могу, жди тех, кто еще помнит. :)


Название: Re: toolbar
Отправлено: IzoLda от Февраль 08, 2011, 14:43
))))понятно...пасиб за попытку)


Название: Re: [Qt 3.3.3] toolbar
Отправлено: Пантер от Февраль 08, 2011, 14:45
Я подправил тему сообщения. В следующий раз указывай версию, чтобы проблем не было.


Название: Re: [Qt 3.3.3] toolbar
Отправлено: GreatSnake от Февраль 08, 2011, 15:30
В Qt3 QToolBar - это переопределённый QDockWindow, который может помещён только в  QDockArea, который в свою очередь только в QMainWindow. Поэтому у тебя 2 решения - используй в качестве top-level окна QMainWindow и создавай тулбар как подсказал Пантер либо используй вместо QToolBar другой виджет, например, QHBox и уже сама добавляй туда QToolButton's.