QT 4.5.2 / Qt Creator 1.2.1 обработка событий .

Модератор: Модераторы разделов

Drozvd
Сообщения: 11

QT 4.5.2 / Qt Creator 1.2.1 обработка событий .

Сообщение Drozvd »

Создал новое Gui приложение приложение и форму mainwindow.ui все по дефолту креэйтором , создал на форме mainwindow.ui с помощью дизайнера кнопки , поля ввода и другие виджеты , как сделать так что бы при нажатие на кнопки и т.д производильсь определенные действия например как в Delphi ????

вот это я понял connect(ExitButton, SIGNAL(clicked()),ExitButton, SLOT(quit())); , но не понял почему не работает , кому нетрудно еще бы коменты к исходникам которые выложил .


Технология сигналом и слотов и сигналов понятна не особо понятно , сигнал - получает данные о действии над объектом , а слот выполняет действия ? И где можно почитаь описание всех компонетов на русском ?





Помогите пожалуйста разобраться , в атачче все исходники , спать не могу из-за этого =\
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: QT 4.5.2 / Qt Creator 1.2.1 обработка событий .

Сообщение Crazy »

Нужно соединить нужную(QPushButton) кнопку с окном программы (QMainWindow), сигналом clicked() со слотом close().
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Desipere in loco
Спасибо сказали:
Drozvd
Сообщения: 11

Re: QT 4.5.2 / Qt Creator 1.2.1 обработка событий .

Сообщение Drozvd »

Crazy писал(а):
29.09.2009 01:20
Нужно соединить нужную(QPushButton) кнопку с окном программы (QMainWindow), сигналом clicked() со слотом close().


Как ты их соединил ????
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: QT 4.5.2 / Qt Creator 1.2.1 обработка событий .

Сообщение NickLion »

Crazy связал сигнал со слотом через редактор форм. Там есть вкладка сигналы и слоты - увидите.
Автоматически сгенерированный код:

Код: Выделить всё

QObject::connect(ExitButton, SIGNAL(clicked()), MainWindow, SLOT(close()));


Кроме этого есть возможность связывать сигналфы со слотами по имени - если слот называется on_<object_name>_<signal_name> - то он будет автоматически связан с сигналом соответствующего объекта.
Спасибо сказали:
Drozvd
Сообщения: 11

Re: QT 4.5.2 / Qt Creator 1.2.1 обработка событий .

Сообщение Drozvd »

При нажатии на виджете Go to slot выдает такое :

Код: Выделить всё

void MainWindow::on_ChetButton_clicked()
{

}


Методы не выполняте ни какие =\ Пытался сделать с помощью редакторов слотов и сигналов то же не работает =\
Изображение
Спасибо сказали:
Drozvd
Сообщения: 11

Re: QT 4.5.2 / Qt Creator 1.2.1 обработка событий .

Сообщение Drozvd »

Есть форма 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;
}
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: QT 4.5.2 / Qt Creator 1.2.1 обработка событий .

Сообщение Crazy »

Может в конструкторе MainWindow написать что-то типа

Код: Выделить всё

connect(ui->конретная кнопка, SIGNAL(clicked()), this, SLOT(showdialog()))

Desipere in loco
Спасибо сказали: