Объект типа QFrame не хочет отображаться по клику мыши |
Здравствуйте, гость ( Вход | Регистрация )
Объект типа QFrame не хочет отображаться по клику мыши |
Лёшка |
17.5.2010, 11:16
Сообщение
#1
|
Студент Группа: Участник Сообщений: 33 Регистрация: 26.3.2010 Из: Ставрополь Пользователь №: 1569 Спасибо сказали: 0 раз(а) Репутация: 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); } } здесь должен создаться фрейм с заданными параметрами, но он не отображаетсь, в чем проблема??? |
|
|
Litkevich Yuriy |
17.5.2010, 12:19
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
объект QFrame не помещается в компоновщик родительского ("этого") виджета, а родительский виджет уже создан и отображён. Чтобы в такой ситуации отобразился дочерний виджет нужно вызвать его метод show()
|
|
|
Лёшка |
17.5.2010, 14:08
Сообщение
#3
|
Студент Группа: Участник Сообщений: 33 Регистрация: 26.3.2010 Из: Ставрополь Пользователь №: 1569 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Litkevich Yuriy |
17.5.2010, 16:51
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Лёшка |
18.5.2010, 10:02
Сообщение
#5
|
Студент Группа: Участник Сообщений: 33 Регистрация: 26.3.2010 Из: Ставрополь Пользователь №: 1569 Спасибо сказали: 0 раз(а) Репутация: 0 |
огда фрейм выскакивает отдельным окном. хотелось бы увидеть это своими глазами, т.е. пример кода который это воспроизводит.что то типа БИЛДЕРОВСКОГО 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 |
18.5.2010, 10:06
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
TShape это объект в C++Builder который отображает геометрические фигуры(квадрат, круг, элипс и треурольник). для этого, пожалуй, лучше воспользоваться графическим представлениемП.С. посмотри тему Справка по кнопкам и тэгам форума, по поводу оформления сообщений |
|
|
Текстовая версия | Сейчас: 26.11.2024, 7:55 |