Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2009, 17:44   #1
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию

Вообщем всё корректно компилится, а на этапе выполнения в случае раскомментированной строчки пишет segmentation fault.
Я в QT не особо ориентируюсь, но это собственно и есть книжный пример, и потому прошу пролить свет на эту загадочную ерунду.

Код:
#include <QtGui>
#include "sortdialog.h"

SortDialog::SortDialog(QWidget *parent) : QDialog(parent)
{
  setupUi(this);
 secondaryGroupBox->hide();
   tertiaryGroupBox->hide();
//  layout()->setSizeConstraint(QLayout::SetFixedSize);  !!!
  setColumnRange('A', 'Z'); 
}  
  void SortDialog::setColumnRange(QChar first, QChar last)
{
  primaryColumnCombo->clear();
  secondaryColumnCombo->clear();
  tertiaryColumnCombo->clear();

  secondaryColumnCombo->addItem(tr("None"));
  tertiaryColumnCombo ->addItem(tr("None"));

  primaryColumnCombo  -> setMinimumSize(secondaryColumnCombo->sizeHint());
  
  QChar ch = first;
  while (ch <= last) {
   primaryColumnCombo->addItem(QString(ch));
   secondaryColumnCombo->addItem(QString(ch));
   tertiaryColumnCombo->addItem(QString(ch));
   ch = ch.unicode() + 1; 
} 
}
Может чё накосячил в самом дизайнере?

Последний раз редактировалось MaTBeu; 04.01.2010 в 12:59.
jojahti вне форума Ответить с цитированием
Старый 12.08.2009, 02:57   #2
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Что такое layout ? Как и где оно определено ? И зачем там скобки ?
oleg kutkov вне форума Ответить с цитированием
Старый 12.08.2009, 13:02   #3
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию

ААААААА!!! Я Олень!! :D :D :WALL:
Я забыл про мэнеджеры компоновки. 0_0
Вообщем нужно вот чё - setLayout(корневой мэнеджер);
Ясен пень что ошибку выдавало, вероятно схлопывать отсутствующий мэнеджер - работа неблагодарная. :D

Вопрос - почему компилятор, считает, что так и надо?

oleg kutkov
Цитата:
Что такое layout ?
Внешний мэнеджер компоновки.

Цитата:
Как и где оно определено ?
В QFormLayout вроде.

Цитата:
И зачем там скобки
Ну это типо функция.

Вопрос такой:
Я запихнул мэнеджер в setLayout(), в sortdialog.cpp.

Почему, если я пытаюсь сделать это там же, где настраиваются мелкие контейнеры(простые Layoutы, хз как их назвать) - мне на этапе компиляции - компилятор пишет, что дескать не знает, что за зверь такой setLayout() ?? Это как, если соответствующая библиотека перечислена в инклудах?

jojahti
Цитата:
В QFormLayout вроде.
Неа, там она как функция не определена.

Цитата:
Ну это типо функция.
И вроде не функция. Такой значок "->"вроде применяется к адресной переменной, содержащей адрес объекта.
Чё то я не понял синтаксиса. (

Последний раз редактировалось MaTBeu; 04.01.2010 в 13:00.
jojahti вне форума Ответить с цитированием
Старый 12.08.2009, 16:55   #4
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Это мне кажется или jojahti снова ведет диалог сам с собой ?
oleg kutkov вне форума Ответить с цитированием
Старый 12.08.2009, 17:26   #5
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию

Ну а что тут такого, веду же я например диалог с тобой, почему я не могу вести диалог с ё яхти?. )
Тем более, как иначе в наглядной форме поправить свои утверждения?

Почему книжек по QT в магазинах нету?
jojahti вне форума Ответить с цитированием
Старый 03.01.2010, 18:59   #6
sarkazm
Новичок
Джуниор
 
Регистрация: 03.01.2010
Сообщений: 1
По умолчанию

у меня тоже segmentation fault =)
поздновато, конечно, но все же:
layout() - функция наследуемая из QWidget
и да, setLayout как бы решение, но правильнее будет задать этот самый "корневой менеджэр" в Qt Designer.
мне помогло выбрать саму форму, или как оно там называется, и выровнять все ее компоненты: Form -> Lay Out Vertically
sarkazm вне форума Ответить с цитированием
Старый 06.01.2010, 09:57   #7
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию

Да ну его, этот дизайнер. Он только путает всё.
jojahti вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посоветуйте учебник по QT4 jojahti Общие вопросы C/C++ 2 06.08.2009 20:01
qt4, win32 и статическая линковка. ASGAlex Qt и кроссплатформенное программирование С/С++ 3 09.06.2009 09:13
Синтаксис AT&T - Memory fault Ulex Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 07.05.2009 23:02
Program received signal SIGSEGV, Segmentation fault. ciaonataha Общие вопросы C/C++ 53 24.04.2009 14:06