Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QT 4.5.2 / Qt Creator 1.2.1 обработка событий , зависимость форм .
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt инструментарий
Gman
Создал новое Gui приложение приложение и форму mainwindow.ui все по дефолту креэйтором , создал на форме mainwindow.ui с помощью дизайнера кнопки , поля ввода и другие виджеты , как сделать так что бы при нажатие на кнопки и т.д производильсь определенные действия например как в Delphi ????
И как делать зависимость форм ?

Если не трудно напишите или перевидите документацию по QT Creator ,информации на русском почти нет для этой IDE =\ , можно даже статьи с картинками как что делать можно . QDevelop вобще темный лес .
nZil
вот тут туториалы по QtCreator'у.
Наверное все книги по Qt на русском содержат небольшое описание QtCreator'а.

ой ошибочка... в книгах описание Designer'а. Вообще процесс создания форм и обработки базовых сигналов у криэйтора и дизайнера одинаковый. Так что юзай книги)
Gman
Я разобрался вот ролик как делать обработку событий : http://www.youtube.com/watch?v=c0HkTtUNxrw , Народ Напишите по этому делу мини хэлп плиз !!!!! , не всем же понятно , все подробней опишите в плане написания кода
Litkevich Yuriy
Цитата(Gman @ 1.10.2009, 3:06) *
Народ Напишите по этому делу мини хэлп плиз !!!!! , не всем же понятно , все подробней опишите в плане написания кода
вот возьми и напиши. У нас для этого и Вики имеется, тык.
Gman
Есть форма dialog с кнопками и текстом (QDialog) , почему его надо каждый раз объевлять ?
Раскрывающийся текст
Dialog dialog;
и при вызове формы dialog , не отображаются кнопки и текст ?
main.cpp
Раскрывающийся текст
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QSplashScreen>
#include "dialog.h"
#include "ui_dialog.h"

int main(int argc, char *argv[])
{


QApplication a(argc, argv);

MainWindow w;
w.show();
Dialog dialog;
a.connect(&w,SIGNAL(clicked()),&dialog,SLOT(showdialog()));

return a.exec();
}


Описание слота :
Раскрывающийся текст
int MainWindow::showdialog()

{
Dialog dialog;
dialog.exec();
return 0;
}
Litkevich Yuriy
Цитата(Gman @ 3.10.2009, 23:15) *
почему его надо каждый раз объевлять ?
не понятно очём речь, а приведённый код ещё большую непонятность создаёт.
Gman
Есть два окна главное и диалоговое , диалоговое вызывается из главного путем сигнала click , но не отображаться правильно как в должно быть в дизайнере . Вопрос про объединении форм .
Litkevich Yuriy
Цитата(Gman @ 3.10.2009, 23:15) *
почему его надо каждый раз объевлять ?
Цитата(Gman @ 4.10.2009, 0:27) *
диалоговое вызывается из главного
Диалоговые окна, модальные, создаются именно так, как у тебя написано в слоте int MainWindow::showdialog()
В функции main он бессмысленен, упоминание его (include) тоже не нужно. Соответственно и соединение в ней тоже не нужно.
В классе MainWindow сигнала clicked наверняка нет.

Диалог должен быть известен главному окну, т.е. в нём должен быть соответствующий include.
Тебе необходимо соеденить сигнал какого либо объекта (находящегося в главном окне) со слотом int MainWindow::showdialog(). И сделать это нужно в конструкторе главного окна (самое подходящее место)



Цитата(Gman @ 29.9.2009, 13:38) *
QDevelop вобще темный лес .
он, кстати, проще чем креатор.
Gman
Как создать окно без рамки и как реализовать метод exec для MainWindow , что бы окно MainWindow не исчезало ?
Andrewshkovskii
Без рамки : QMainWindow ( QWidget * parent = 0, Qt::WindowFlags flags = 0 ) , указать WindowFlags как Qt::FramelessWindowHint . Что значит что бы не исчезало?
Gman
 void  Frame::showMainWindow()
{

MainWindow h;
h.show();

}

Только нажатие на кнопку т.е сигнала clicked будет показано гавное , MainWindow , на то что бы главное окно оставалось открытым после нажатия на кнопку , а не закрывалось .
Andrewshkovskii
Не понятно все равно. спрятать окно что ли?
Litkevich Yuriy
Цитата(Gman @ 10.10.2009, 5:17) *
MainWindow h;
h.show();
Переменная MainWindow локальная для этой функции, как только из функции выйдешь она прекратит своё существование. (Это из области языка "Си", ещё до плюсов)
Gman
MainWindow это класс , h - объект класса MainWindow , show() метод , а указатель на объект h создать не возможно , и как соединить с mai.cpp хз =\
Litkevich Yuriy
Цитата(Gman @ 10.10.2009, 16:37) *
а указатель на объект h создать не возможно
поясни
Andrewshkovskii
создать указатель на h:
MainWindow *ph = &h;


Что значит соединить с main.cpp? Мне кажется, у тебя проблемы с языком (программирования) в плане теории.
Gman
Мне нужно функции showMainWindow передать значение h; метод showMainWindow это медот класса Frame . Наоборот в простом С++ это проще сделать . Меня , что то не доходит как объекты одного класса передавать другому , что бы был один и тот же объект .

void Frame::showMainWindow(void)
{

void show();


}

Как в эту функции передать h (из MAinWIndow h; т.е объект h класса MainWindow ) ? В С++ я бы создал конструктор с параметрами и эти параметры передал бы методу show , если наследовать один класс от другого получиться ересть ,



Litkevich Yuriy
Цитата(Gman @ 10.10.2009, 19:05) *
В С++ я бы создал конструктор с параметрами и эти параметры передал бы методу show , если наследовать один класс от другого получиться ересть ,
Qt написана C++.

Лучше расскажи основной замысел программы. А то ты как-то непонятно делаешь.
Изначально ты пытался использоватьQDialog и делал это неверно.
Потом окно без рамки
Тепрь какой-то Frame лишь водной функции которого ты создаёшь главное окно приложения и убиваешь его по выходу из функции.

По моему разумению это три раные темы, и ни как не связанны с заголовком "Qt Creator 1.2.1 обработка событий"
Andrewshkovskii
Тебе надо передать указатель на объект в функцию (ну или его копию..) :

void Frame::showMainWindow(MainWindow * h)
{
h->show();
}
Gman
Связано , я создаю кнопку или другой элемент управления , прикрепляю к нему сигнал , описываю слот , проблема идет в описании слота . Мне нужно окон с кнопкой запуска окна MainWindow и всё , и разобраться с передаче
Andrewshkovskii
Ты лучше свои вопросы нормально формулируй, а то тебя понять сложно.Тебе удалось передать свой объект в слот?
Litkevich Yuriy
Вот тестовый пример Нажмите для просмотра прикрепленного файла
Gman
Мне нужна форма без рамки т.е форма заставка с кнопкой запуск которая будет запускать MainWindow т.е главное окно , объект в слот не передается , приходиться загонов в описании слота объявлять объект класса MainWindow ,или других классов , для QDialog есть такой метод exec() , в аттач прикрепил свой проект , вопрос идиотский но решения нет у меня =\ спс за помощь.
Litkevich Yuriy
Цитата(Gman @ 10.10.2009, 21:15) *
Мне нужна форма без рамки
Пёс сней с рамкой, ты с начала с базовыми вещами разберись, потом марафет наводить будешь.

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

П.С. смотри коментарии
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.