Russian Qt Forum
Апрель 23, 2024, 23:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: кнопки налазиют на ToolBar...(Qt 3.3.3)  (Прочитано 4851 раз)
IzoLda
Гость
« : Февраль 16, 2011, 08:12 »

Код программы:
#include "mainwindow.h"
#include <qdockwindow.h>
#include <qhbox.h>
#include <qsplitter.h>
#include <qlayout.h>

#include "images/sta.xpm"
#include "images/delete.xpm"
#include "images/commut_xpm.xpm"
#include "images/information.xpm"

MainWindow::MainWindow(QWidget *parent, const char *name ) : QMainWindow(parent, name)
{
   setCaption ( tr("Диалоговое окно"));
   setIcon(QPixmap::fromMimeSource("12.png"));
   
   //QSplitter verticalSplitter = new QSplitter(Vertical, this);
   
   
   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( "Уровень доступа" ) );
   setCentralWidget(table);
      
   toolBar = new QToolBar(tr("Опции"), this);
   moveDockWindow( toolBar, DockTop );
   
   addAction = new QAction(
      QPixmap((const char**)sta_xpm), tr( "Добавить пользователя" ), CTRL + Key_U, this, "addUser" );
   deleteAction = new QAction(
      QPixmap((const char**)delete_xpm), tr( "Удалить пользователя" ), CTRL + Key_U, this, "addUser" );
   changeAction = new QAction(
      QPixmap((const char**)commut_xpm), tr( "Изменить пользователя" ), CTRL + Key_U, this, "addUser" );
   helpAction = new QAction(
      QPixmap((const char**)magick), tr( "Справочник" ), CTRL + Key_U, this, "addUser" );
   
   addAction->addTo( toolBar );
   deleteAction->addTo( toolBar );
   changeAction->addTo( toolBar );
   helpAction->addTo( toolBar );
   
   //QHBox *hbox = new QHBox(this);
   //hbox->setMargin(4);
    //hbox->setSpacing(4);
   
   //QSplitter horizontalSplitter = new QSplitter(Horizontal, verticalSplitter);
   
   okButton = new QPushButton(tr("OK"), this);
   connect(okButton, SIGNAL(clicked()), this, SLOT(close()));
   //moveDockWindow( okButton, DockBottom );
   
   closeButton = new QPushButton(tr("Cancel"), this);
   connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
   
/*   QHBoxLayout *BLayout = new QHBoxLayout;
   BLayout->addStretch(1);
   BLayout->addWidget(okButton);
   BLayout->addWidget(closeButton);
   
   QVBoxLayout *VLayout = new QVBoxLayout(this);
   VLayout->addWidget(table);
   VLayout->addLayout(BLayout);*/
}

тут в комментариях то что я пробовала сделать...помогите,пож-та,у меня кнопки залазиют на toolBar либо на table,а я хотела чтоб снизу были кнопки
Записан
santaclaus
Гость
« Ответ #1 : Февраль 16, 2011, 09:25 »

Ну вообще странно, у меня всегда с лайоутами проблем не было, всегда все хорошо помещалось когда сам в коде прописывал компоненты и помещал их в выравнивание....

Думаю может вам следует обновить версию Qt? Qt 3.3.3 давно была...сам начал с 4.2 и таких проблем вообще не знал.
Записан
IzoLda
Гость
« Ответ #2 : Февраль 16, 2011, 09:29 »

и на том спасибо!наверное придется обновить...
Записан
Fat-Zer
Гость
« Ответ #3 : Февраль 16, 2011, 09:40 »

под 4-ку код нужно будет переписывать чуть меньше, чем полностью

ЗЫ: теги [соde] вам в помощь...
ЗЗЫ: ещё можно подождать тех, кто помнит...
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Февраль 16, 2011, 10:47 »

Вам нужно создать пустой QWidget. Его установить как центральный. И уже на него вешать VLayout.
Записан

Qt 5.11/4.8.7 (X11/Win)
IzoLda
Гость
« Ответ #5 : Февраль 16, 2011, 10:59 »

получилось!!!спасибо!!!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 22.