crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Объект типа QFrame не хочет отображаться по клику мыши
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 18.5.2010, 10:06
 
Цитата(Лёшка @ 18.5.2010, 14:02) *
TShape это объект в C++Builder который отображает геометрические фигуры(квадрат, круг, элипс и треурольник).
для этого, пожалуй, лучше воспользоваться графическим представлением

П.С. посмотри тему Справка по кнопкам и тэгам форума, по поводу оформления сообщений
Лёшка Дата 18.5.2010, 10:02
 
Цитата(Litkevich Yuriy @ 17.5.2010, 17:51) *
Цитата(Лёшка @ 17.5.2010, 18:08) *
огда фрейм выскакивает отдельным окном.
хотелось бы увидеть это своими глазами, т.е. пример кода который это воспроизводит.

Цитата(Лёшка @ 17.5.2010, 18:08) *
что то типа БИЛДЕРОВСКОГО TShap`а
а что это такое?

TShape это объект в C++Builder который отображает геометрические фигуры(квадрат, круг, элипс и треурольник).
Раскрывающийся текст

#include "mainwindow.h"
#include "ui_mainwindow.h"


int Napr;
int k;
int i;

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

Napr = 0;
k = -1;
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}

void MainWindow::keyPressEvent(QKeyEvent *event)
{
/*Изменение направления движения в зависимости от нажатой клавиши*/
/*анализируется нажатая клавиша и задается направление движения*/

switch(event->key())
{
case Qt::Key_Left:
if (Napr!=3) Napr = 1;
break;
case Qt::Key_Right:
if (Napr!=1) Napr = 3;
break;
case Qt::Key_Down:
if (Napr!=2) Napr = 4;
break;
case Qt::Key_Up:
if (Napr!=4) Napr = 2;
break;
}
}
void MainWindow::prov()
{
/*проверка завершения движения*/
if(Napr!=0)
{
if((ui->fig->x()>ui->frame->width()||(ui->fig->x()<0)||
(ui->fig->y()<0)||(ui->fig->y()>ui->frame->height())))
{
QTimer *timer = new QTimer(this);
timer->start(1000);
Napr = 0;
}
}
}
void MainWindow::mousePressEvent(QMouseEvent *even)
{
/*вывод объектов по клику мыши*/
if(even->button() == Qt::LeftButton)
{
k++;
fig[k] = new QFrame(this);
fig[k]->setGeometry(100, 100, 20, 20);
fig[k]->setFrameStyle(6);
//fig[k]->show();
}
}

В общем здесь я пытаюсь переписать простую игру написанную мной на C++Builder на 3 курсе.
Litkevich Yuriy Дата 17.5.2010, 16:51
 
Цитата(Лёшка @ 17.5.2010, 18:08) *
огда фрейм выскакивает отдельным окном.
хотелось бы увидеть это своими глазами, т.е. пример кода который это воспроизводит.

Цитата(Лёшка @ 17.5.2010, 18:08) *
что то типа БИЛДЕРОВСКОГО TShap`а
а что это такое?
Лёшка Дата 17.5.2010, 14:08
 
Цитата(Litkevich Yuriy @ 17.5.2010, 13:19) *
нужно вызвать его метод show()

пробовал так делать, но тогда фрейм выскакивает отдельным окном.
вижу что с фреймом не выйдет, а есть ли в Qt что то типа БИЛДЕРОВСКОГО TShap`а или что то хотя бы немного похожее
Litkevich Yuriy Дата 17.5.2010, 12:19
  объект QFrame не помещается в компоновщик родительского ("этого") виджета, а родительский виджет уже создан и отображён. Чтобы в такой ситуации отобразился дочерний виджет нужно вызвать его метод show()
Лёшка Дата 17.5.2010, 11:16
  есть код
Раскрывающийся текст

void MainWindow::mousePressEvent(QMouseEvent *even)
{
if(even->button() == Qt::LeftButton)
{
k++;
fig[k] = new QFrame(this);
fig[k]->setGeometry(100, 100, 20, 20);
fig[k]->setFrameStyle(6);

}
}


здесь должен создаться фрейм с заданными параметрами, но он не отображаетсь, в чем проблема???
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.4.2024, 18:11