Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переключение режима компоновки 
:(
    Опции темы
bsa
Дата 18.6.2013, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Aline, ты сказала, что заменила на if. По идее, данная строка должна была превратиться в:
Код
QLayout *l;
if (flHorizont)
   l = new QHBoxLayout;
else
   l = new QVBoxLayout;

PM   Вверх
Aline
Дата 18.6.2013, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



bsa, да, я так делала, в этом случае доходит до конца процедуры. Далее отладчик попападает в ассемблеровский код и вот здесь вылетает:

Function: QListData::isEmpty() const
0xb16658  <+0x0000>         push   %ebp
0xb16659  <+0x0001>         mov    %esp,%ebp
0xb1665b  <+0x0003>         sub    $0x4,%esp
0xb1665e  <+0x0006>         mov    %ecx,-0x4(%ebp)
0xb16661  <+0x0009>         mov    -0x4(%ebp),%eax
0xb16664  <+0x000c>         mov    (%eax),%eax
0xb16666  <+0x000e>         mov    0xc(%eax),%edx
PM MAIL   Вверх
bsa
Дата 18.6.2013, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Aline, стек смотри. Возможно по нему можно будет определить где возникла проблема. А уже из этого понять, как ее исправить.
Попробуй переписать код так:
Код
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
//bool flHorizont = true; //это перенеси в тело класса
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow),
    flHorizontal(false)
{
    new QVBoxLayout(this); //если сделаешь в дизайнере компоновку по-вертикали, то можешь убрать эту строку
    ui->setupUi(this);
    connect(ui->pushButton, SIGNAL(clicked), SLOT(onChange));
}
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::onChange()
{
  flHorizont = !flHorizont;
  QLayout *l;
  if (flHorizont)
     l = new QHBoxLayout;
  else
     l = new QVBoxLayout;
  delete layout();
  setLayout(l);
  l->addWidget(ui->label);
  l->addWidget(ui->textEdit);
  l->addWidget(ui->comboBox);
}

PM   Вверх
Aline
Дата 18.6.2013, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



Цитата(bsa @  18.6.2013,  11:13 Найти цитируемый пост)
стек смотри

а как его смотреть?

Добавлено через 8 минут и 1 секунду
Цитата(bsa @  18.6.2013,  11:13 Найти цитируемый пост)
Попробуй переписать код так:

на это дало ошибку , но уже в другом месте
        Function: QListData::size() const
0xd46614  <+0x0000>         push   %ebp
0xd46615  <+0x0001>         mov    %esp,%ebp
0xd46617  <+0x0003>         sub    $0x4,%esp
0xd4661a  <+0x0006>         mov    %ecx,-0x4(%ebp)
0xd4661d  <+0x0009>         mov    -0x4(%ebp),%eax
0xd46620  <+0x000c>         mov    (%eax),%eax
0xd46622  <+0x000e>         mov    0xc(%eax),%edx
PM MAIL   Вверх
Aline
Дата 18.6.2013, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



Кстати, вот такой вариат :

Код

flHorizont = !flHorizont;

    if (flHorizont) ui->horizontalLayout->setDirection(QBoxLayout::LeftToRight);
    else ui->horizontalLayout->setDirection(QBoxLayout::TopToBottom);


вообще без проблем работает smile Но я не знаю насколько это правильно. В смыле насколько соответствует заданному заданию.
PM MAIL   Вверх
bsa
Дата 18.6.2013, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Aline, я не знаю твоего задания.
В принципе, очень интересный способ. В этом случае можно использовать QBoxLayout вместо QHBoxLayout.
PM   Вверх
Aline
Дата 18.6.2013, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



bsa, всё задание в первом сообщении на 1-й странице. Больше ничего нет. Дело в том, что мне просто дали видео с лекции, к нему очень (ну очень) краткий конспект и вот эти задания. Сказали, что так быстрее обучаться. Тонкости по заданию я не знаю, т.к. на лекции не присутствовала smile
Вот здесь можно посмотреть http://www.zmartzoft.ru/projects/qtinception/wiki/day1
PM MAIL   Вверх
bsa
Дата 18.6.2013, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



думаю, сойдет.
PM   Вверх
Aline
Дата 18.6.2013, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



bsa, ну всё равно интересно почему не работает?smile Наверное что то происходит с элементами
PM MAIL   Вверх
bsa
Дата 18.6.2013, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



возможно из-за того, что я говорю про дефолтный компоновщик, а ты работаешь с отдельным.
PM   Вверх
Aline
Дата 18.6.2013, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



bsa,но в задании то указано, что надо элементы скомпоновать.
PM MAIL   Вверх
bsa
Дата 18.6.2013, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Aline, но там не указано, что компоновщик должен быть самостоятельным. Если ты нажмешь правой кнопкой на форме и добавишь компоновщик, то это тоже будет "скомпоновать".
PM   Вверх
Aline
Дата 19.6.2013, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



bsa, но я так поняла, что компануются именно 3 любых элемента,а затем уже отдельно добавляется кнопка, не так?
PM MAIL   Вверх
bsa
Дата 20.6.2013, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Aline, проще уточнить у препода
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.