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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Координаты QHBoxLayout...?  (Прочитано 4556 раз)
serg_yl
Гость
« : Октябрь 14, 2010, 12:21 »

3 кнопки, созданные в менеджере компоновки (горизонтальное размещение).
Код:
#include <QtGui/QApplication>
#include "widget.h"
#include <QPushButton>
#include <QTextCodec>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));

    QPushButton* sozdat = new QPushButton ("Создать...");
sozdat->setGeometry(10, 40, 180, 40);
    QPushButton* ydalit = new QPushButton ("Удалить объекты... / Очистить память");
    QPushButton* close = new QPushButton ("Закрыть");

    QHBoxLayout* phbxLayout = new QHBoxLayout;

    phbxLayout->setMargin(10);
    phbxLayout->setSpacing(20);
    phbxLayout->addWidget(sozdat);
    phbxLayout->addWidget(ydalit);
    phbxLayout->addWidget(close);


    w.setLayout(phbxLayout);
    w.setWindowFlags(Qt::Window|Qt::WindowMinimizeButtonHint);
    w.setWindowTitle("Задача 2 - Вариант 10");
    w.resize(700,400);
    w.show();

    return a.exec();
}
Как изменить координаты этого блока кнопок, так чтобы они были в низу главного окна?
« Последнее редактирование: Октябрь 14, 2010, 16:28 от serg_yl » Записан
voral
Гость
« Ответ #1 : Октябрь 14, 2010, 14:12 »

Перед их добавлением phbxLayout->addStretch();
Записан
Kolobok
Гость
« Ответ #2 : Октябрь 14, 2010, 14:17 »

void QBoxLayout::addWidget ( QWidget * widget, int stretch = 0, Qt::Alignment alignment = 0 )
Записан
serg_yl
Гость
« Ответ #3 : Октябрь 14, 2010, 16:30 »

voral - масть не понял, вставляю то что ты написал, у меня кнопки в право уходят... Не понятно... Непонимающий
Kolobok - поясни пожалуйста куда это строку вставить чтобы было корректно?
« Последнее редактирование: Октябрь 14, 2010, 16:44 от serg_yl » Записан
Kolobok
Гость
« Ответ #4 : Октябрь 14, 2010, 16:58 »

Ты же этот метод уже использовал. Только с параметрами по умолчанию. Прочти описание флага Qt::Alignment. И все станет понятно.
Записан
voral
Гость
« Ответ #5 : Октябрь 14, 2010, 18:05 »

voral - масть не понял, вставляю то что ты написал, у меня кнопки в право уходят... Не понятно... Непонимающий
упс. Прошу прощения пропустил мимо ушей что горизонтальный блок.
Тогда создаешь вертикальный блок и в него добавляешь сначла addStretch()  а потом addLayout(phbxLayout);
и уже этот блок отдаешь в виджет

Хотя вариант который предложил kolobok тебе наверно лучше подойдет.
« Последнее редактирование: Октябрь 14, 2010, 18:08 от voral » Записан
serg_yl
Гость
« Ответ #6 : Октябрь 14, 2010, 19:45 »

Ну вообще зашел в тупик...
Пишу строчку.
Код:
phbxLayout->addWidget(sozdat,0,Qt::AlignBottom=0x0040);
В ответ ошибка, Шvalue required as left operand of assignment.
Где закралась ошибка?... Непонимающий
Записан
BRE
Гость
« Ответ #7 : Октябрь 14, 2010, 19:49 »

Здесь:
Qt::AlignBottom=0x0040
Записан
serg_yl
Гость
« Ответ #8 : Октябрь 14, 2010, 19:53 »

BRE - Спасибо!!!
Всем спасибо за ваши ответы!
P.S.
Отличный форум! Респект тем людям которые организовали его! Улыбающийся
Записан
serg_yl
Гость
« Ответ #9 : Октябрь 14, 2010, 21:35 »

Пишу сюда, дабы не засорять форум пустяковыми вопросами...
Эх... Сигналы и слоты...

в Mail.cpp соединяю...
Код:
QObject::connect(&close_wid,SIGNAL(cliked()),&a,SLOT(quit()));

В Widget.h объявил.
Код:
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

public slots:
   void quit();

signals:
    void cliked();

};
И на конец в widget.cpp определил как:
Код:
void Widget::quit()//Закрытие программы
{
    emit quit();
}
В чем ошибка, снова каша в голове... Плачущий
« Последнее редактирование: Октябрь 15, 2010, 08:08 от serg_yl » Записан
serg_yl
Гость
« Ответ #10 : Октябрь 15, 2010, 09:28 »

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


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