crossplatform.ru

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

> вопрос по сигналам и слотам
deex
  опции профиля:
сообщение 2.9.2009, 18:33
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 45
Регистрация: 12.3.2009
Пользователь №: 608

Спасибо сказали: 0 раз(а)




Репутация:   0  


пытаюсь связать интерфейс Qt с функциями, через сигналы и слоты

вот что на данный момент не получается:

можно создать виджет руками

QLCDNumber *plcd = new QLCDNumber;

и потом привязать сигналы с него к слоту другого виджета

QObject::connect(pspb, SIGNAL(valueChanged(int)), plcd, SLOT(display(int)));
--------

с этим всё понятно, мы передаём в connect() указатель на виджет plcd

но в Eclipse можно рисовать интерфейс в редакторе.
И тогда появляется два файла, к примеру test.h, test.ui

допустим создал я на поверхности test.ui кнопку и имя у неё testButton

в коде можно лишь создать объект

test obj;
и показать его
obj.show();

как обратиться к созданной кнопке?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
deex
  опции профиля:
сообщение 3.9.2009, 7:44
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 45
Регистрация: 12.3.2009
Пользователь №: 608

Спасибо сказали: 0 раз(а)




Репутация:   0  


кто ж мог подумать что связка Eclipse + QT мешает, а не помогает
обычный С++ я пишу в Эклипсе и мне он очень облегчает жизнь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
reich
  опции профиля:
сообщение 3.9.2009, 8:51
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 10
Регистрация: 31.7.2009
Пользователь №: 966

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата(deex @ 3.9.2009, 7:44) *
кто ж мог подумать что связка Eclipse + QT мешает, а не помогает
обычный С++ я пишу в Эклипсе и мне он очень облегчает жизнь

Бред полнейший. Прочитайте хотябы пол книги по Qt и Вы поймете, как рисовать GUI

Вот простой пример, как этим пользоваться:
//main.cpp
#include <QtGui/QApplication>

#include "widget.h"



int main( int argc, char *argv[] ){
    QApplication app( argc, argv );
    Widget wdg;
    wdg.setInstance( app.instance() );
    wdg.setVisible( true );
    return app.exec();
}

//widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include "ui_widget.h"

class QCoreApplication;

class Widget : public QWidget{

    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

public:
    void setInstance( QCoreApplication *__app );

private:
    Ui::WidgetClass _ui;

};

#endif // WIDGET_H


//widget.cpp
#include "widget.h"

#include <QtCore/QCoreApplication>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    _ui.setupUi(this);
}

Widget::~Widget()
{

}

void Widget::setInstance(QCoreApplication *__app){
    connect( _ui.pushButton, SIGNAL( clicked() ), __app, SLOT( quit() ) );
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 3.9.2009, 9:30
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(reich @ 3.9.2009, 9:51) *
Бред полнейший. Прочитайте хотябы пол книги по Qt и Вы поймете, как рисовать GUI

:) ;)

Цитата(reich @ 3.9.2009, 9:51) *
Вот простой пример, как этим пользоваться:
//main.cpp
int main( int argc, char *argv[] ){
    ...
    wdg.setInstance( app.instance() );
    ...
}

void Widget::setInstance(QCoreApplication *__app){
    connect( _ui.pushButton, SIGNAL( clicked() ), __app, SLOT( quit() ) );
}

Для чего такие сложные телодвижения для получения указателя на QApplication?
Почитай про:
QCoreApplication * QCoreApplication::instance () [static]
и макрос qApp.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- deex   вопрос по сигналам и слотам   2.9.2009, 18:33
- - BRE   test obj; connect( obj.testButton, SIGNAL...   2.9.2009, 18:39
- - deex   спасибо в том то и дело что строка, где упоминаетс...   2.9.2009, 18:50
- - SABROG   Цитата(deex @ 2.9.2009, 19:33) допустим с...   2.9.2009, 19:12
- - deex   получилось. но ui в классе test был объявлен Экли...   3.9.2009, 6:55
- - kwisp   deex, вишь все беды от эклипса. если начинаешь с ...   3.9.2009, 7:16
- - deex   кто ж мог подумать что связка Eclipse + QT мешает,...   3.9.2009, 7:44
|- - reich   Цитата(deex @ 3.9.2009, 7:44) кто ж мог п...   3.9.2009, 8:51
|- - BRE   Цитата(reich @ 3.9.2009, 9:51) Бред полне...   3.9.2009, 9:30
- - reich   BRE, я привык так делать, потому, что есть иногда ...   3.9.2009, 11:01
|- - BRE   Цитата(reich @ 3.9.2009, 12:01) BRE, я пр...   3.9.2009, 11:11
|- - reich   Цитата(BRE @ 3.9.2009, 11:11) Цитата(reic...   3.9.2009, 11:14
|- - BRE   Цитата(reich @ 3.9.2009, 12:14) Пердостав...   3.9.2009, 11:20
- - Litkevich Yuriy   Цитата(BRE @ 3.9.2009, 15:20) Для чего мо...   3.9.2009, 14:46
|- - BRE   Цитата(Litkevich Yuriy @ 3.9.2009, 15:46)...   3.9.2009, 15:10
- - Litkevich Yuriy   Цитата(BRE @ 3.9.2009, 19:10) Ты имеешь в...   3.9.2009, 16:00


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.6.2020, 8:53