Russian Qt Forum
Ноябрь 23, 2024, 21:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [решено] проблемы с connect  (Прочитано 3039 раз)
HirurG.
Гость
« : Апрель 17, 2011, 14:19 »

Здравствуйте! Мне необходимо написать программу, обрабатывающую некоторые данные в таблице, но для начала я хотел бы, чтобы можно было задавать размерность таблицы из виджета QLineEdit. Однако, в строке
Код:
Object::connect(&leN,SIGNAL(textChanged(QString)), &mainwindow, SLOT(setRange()));
возникает ошибка
/home/Дмитрий/Lab_2-build-desktop/../ЧислМет/Lab_2/main.cpp:23: error: no matching function for call to ‘QObject::connect(QLineEdit**, const char*, MainWindow*, const char*)’
Перекопал весь интернет, помогите пожалуйста  Злой весь код программы:

mainwindow.h
Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QObject>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

public slots:
    void setRange();
};

#endif // MAINWINDOW_H
main.cpp
Код:
#include <QtGui/QApplication>
#include <QtGui>
#include "mainwindow.h"

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

    int n = 3;

    MainWindow mainwindow;
    QWidget wgt;

    QHBoxLayout* phbxToolLayout = new QHBoxLayout;
    QVBoxLayout* pvbxLayout = new QVBoxLayout;

    QLabel* lblN = new QLabel("Vvedite razmernost' matrici");
    QLineEdit* leN = new QLineEdit;
    QPushButton* pbN = new QPushButton("Enter");
    QTableWidget tbl(n, n);

    QObject::connect(&leN,SIGNAL(textChanged(QString)),
                     &mainwindow, SLOT(setRange()));

    phbxToolLayout->addWidget(lblN);
    phbxToolLayout->addWidget(leN);
    phbxToolLayout->addWidget(pbN);
    pvbxLayout->addLayout(phbxToolLayout);
    pvbxLayout->addWidget(&tbl);

    wgt.setLayout(pvbxLayout);
    wgt.show();

    return a.exec();
}
mainwindow.cpp
Код:
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

void MainWindow::setRange()
{
    // code
}

MainWindow::~MainWindow()
{
    delete ui;
}

« Последнее редактирование: Апрель 17, 2011, 15:15 от HirurG. » Записан
blood_shadow
Гость
« Ответ #1 : Апрель 17, 2011, 14:35 »

запись в строке ошибки "QLineEdit**"
ничего не говорит? leN - и есть указатель, а ты пытаешься передать указатель на указатель

вот так будет правильно
Object::connect(leN,SIGNAL(textChanged(QString)), &mainwindow, SLOT(setRange()));

+
#include <QObject> можно убрать и можно просто писать connect вместо Object::connect,
так как твой виджет есть непрямым потомком QObject'a
Записан
HirurG.
Гость
« Ответ #2 : Апрель 17, 2011, 14:44 »

blood_shdow, спасибо огромное!!! только второй совет не прокатил Подмигивающий
ЗЫ: в заголовок темы "решено" добавлять? Улыбающийся
Записан
blood_shadow
Гость
« Ответ #3 : Апрель 17, 2011, 15:07 »

blood_shdow, спасибо огромное!!! только второй совет не прокатил Подмигивающий
ЗЫ: в заголовок темы "решено" добавлять? Улыбающийся
да, я ошибся так как у тебя connect делается вне определения класса, то нужно
полностью писать
да, добавляй решено
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.082 секунд. Запросов: 21.