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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не открывается виджет????  (Прочитано 2678 раз)
Garik
Гость
« : Май 10, 2011, 18:52 »

ДОброго всем дня!!! возникла простейшая проблема с которая завела в тупик!!!!!
суть в том что просто надо из под созданого главного Виджета запустить сцену, например нажав кнопку!!! делаю через view.show(); ничего не выходит(
Код:

#include <my_widget.h>
#include <QtGui>
#include <QTextFormat>
#include <QFontMetrics>
#include <QDebug>

MyWidget::MyWidget(QWidget *parent)
         : QWidget(parent)
{
     CreatOptions();
     CreateButtons();

    viewwidget = new ViewWidget;

    QLineEdit *lineEdit = new QLineEdit;
    comboFont=new QFontComboBox;
    QGridLayout *layout = new QGridLayout;

    layout->addWidget(comboFont, 0, 0);
    layout->addWidget(h_board,0,1);
     layout->addWidget(w_board,0,2);
    layout->addWidget(lineEdit, 1, 0);
    layout->addWidget(viewwidget, 2, 0); ////////////////
    layout->addWidget(pushButton1, 3, 0);
    layout->addWidget(pushButton2, 3, 1);
    setLayout(layout);

connect(pushButton2, SIGNAL(clicked()),this,SLOT(buttonclick()));
   resize(300, 300);
}

//////////////////////////////////////////////////////////
void MyWidget::CreatOptions()
{
    h_board = new QSpinBox;
    h_board->setRange(1, 4);
    h_board->setSpecialValueText(tr("1 (h_board)"));

    w_board = new QSpinBox;
    w_board->setRange(1,15);
    w_board->setSpecialValueText(tr("1 (w_board)"));
}

void MyWidget::CreateButtons()
{
     pushButton1 = new QPushButton(tr("&Preview Board"));
     pushButton2 = new QPushButton(tr("&Make File"));
}
//////////////////////////////////////////////////////////
void MyWidget::buttonclick()
{
    qDebug()<<" is work";

    QGraphicsScene scene;
    QGraphicsView view(&scene);
view.show();
}
В чем может быть проблема??? заранее благодарен...
Записан
blood_shadow
Гость
« Ответ #1 : Май 10, 2011, 19:02 »

весь код не разбирал, но по этому:
Код
C++ (Qt)
void MyWidget::buttonclick()
{
   qDebug()<<" is work";
 
   QGraphicsScene scene;
   QGraphicsView view(&scene);
view.show();
}
 

ты создаешь два объекта на стеке при нажатии на кнопку, то есть когда будет выход со слота твои объекты
умрут
тебе нужно их создать с помощью оператора new(динамически)
Записан
Garik
Гость
« Ответ #2 : Май 10, 2011, 19:09 »

весь код не разбирал, но по этому:
Код
C++ (Qt)
void MyWidget::buttonclick()
{
   qDebug()<<" is work";
 
   QGraphicsScene scene;
   QGraphicsView view(&scene);
view.show();
}
 


Благодарю!!!! Понял!!!

ты создаешь два объекта на стеке при нажатии на кнопку, то есть когда будет выход со слота твои объекты
умрут
тебе нужно их создать с помощью оператора new(динамически)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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