Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] connect


Автор: kapbepucm 19.7.2010, 14:09
Делаю простой пример:
Код
#include <QApplication>
#include <QtGui/QPushButton>
//=================================================================
class TMainForm : public QPushButton
{
public:
  TMainForm(QPushButton *parent = 0);
private slots:
  void job();
};
//-----------------------------------------------------------------
void TMainForm::job()
{
  this->close();
}
TMainForm::TMainForm(QPushButton *parent) : QPushButton(parent)
{
  connect(this,SIGNAL(clicked()),this,SLOT(job()));
}
//=================================================================
int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  TMainForm MainForm;
  MainForm.show();
  return app.exec();
}
некорректно работает "connect". Суть программы- создать кнопку, которая будет реализовывать какое нибудь действие. Сей-час только завершить.

Добавлено через 2 минуты и 39 секунд
Помогите решить столь непростую задачу smile

Автор: borisbn 19.7.2010, 14:22
1. В классе TMainForm обязательно нужно объявить макрос Q_OBJECT
2. Если весь этот код в одном файле, то у меня такое не работает. обязательно нужно объявление класса - в отдельный h-ник, реализацию в отдельный cpp-шник, а уже main.cpp - из одной функции main()

Автор: kapbepucm 19.7.2010, 14:23
Измените название темы на [Qt] connect

Добавлено через 1 минуту и 7 секунд
borisbn, спасибо!

Автор: kapbepucm 29.10.2013, 16:14
сделаю дополнение, как ответ самому себе  smile 

Если уж очень хочется в одном файле, то надо сделать 2 вставки в код:
  •  Q_OBJECT , как говорил borisbn
  •  прогнать код через moc
    Код
    moc -o moc_main.cpp main.cpp

     и в конце кода добавить
    Код
    #include "moc_main.cpp"

Автор: kamre 31.10.2013, 17:05
Цитата(kapbepucm @  29.10.2013,  16:14 Найти цитируемый пост)
Если уж очень хочется в одном файле

то можно использовать http://qt-project.org/wiki/New_Signal_Slot_Syntax.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)