crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> копирование lineedit->lineedit, помогите прояснить простые вещи
kir
  опции профиля:
сообщение 21.2.2009, 15:58
Сообщение #1


Студент
*

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

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




Репутация:   0  


только начал изучать qt и не пойму некоторые моменты
например скопировать текст из одного Lineedit в другой или в textedit или в Lable...проект в mvc 2008, делаю форму и создаю свой слот с помощью qt designer, добавляю слот в public stots и в testapp.cpp реализация слота.
ui_testapp.h файл генерирует дезайнер

/********************************************************************************
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/
#ifndef UI_TESTAPP_H
#define UI_TESTAPP_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QLineEdit>
#include <QtGui/QMainWindow>
#include <QtGui/QMenuBar>
#include <QtGui/QPushButton>
#include <QtGui/QStatusBar>
#include <QtGui/QToolBar>
#include <QtGui/QWidget>

QT_BEGIN_NAMESPACE

class Ui_testAppClass
{
public:
    QWidget *centralWidget;
    QPushButton *push;
    QLineEdit *lineEdit;
    QLineEdit *lineEdit_2;
    QMenuBar *menuBar;
    QToolBar *mainToolBar;
    QStatusBar *statusBar;
    
    void setupUi(QMainWindow *testAppClass)
    {
    if (testAppClass->objectName().isEmpty())
        testAppClass->setObjectName(QString::fromUtf8("testAppClass"));
    testAppClass->resize(600, 400);
    centralWidget = new QWidget(testAppClass);
    centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
    push = new QPushButton(centralWidget);
    push->setObjectName(QString::fromUtf8("push"));
    push->setGeometry(QRect(210, 120, 75, 23));
    lineEdit = new QLineEdit(centralWidget);
    lineEdit->setObjectName(QString::fromUtf8("lineEdit"));
    lineEdit->setGeometry(QRect(90, 120, 113, 20));
    lineEdit->setStyleSheet(QString::fromUtf8("color: qradialgradient(spread:repeat, cx:0.5, cy:0.5, radius:0.077, fx:0.5, fy:0.5, stop:0 rgba(0, 169, 255, 147), stop:0.497326 rgba(0, 0, 0, 147), stop:1 rgba(0, 169, 255, 147));\n"
"background-color: rgb(29, 44, 255);"));
    lineEdit_2 = new QLineEdit(centralWidget);
    lineEdit_2->setObjectName(QString::fromUtf8("lineEdit_2"));
    lineEdit_2->setGeometry(QRect(300, 120, 113, 20));
    testAppClass->setCentralWidget(centralWidget);
    menuBar = new QMenuBar(testAppClass);
    menuBar->setObjectName(QString::fromUtf8("menuBar"));
    menuBar->setGeometry(QRect(0, 0, 600, 22));
    testAppClass->setMenuBar(menuBar);
    mainToolBar = new QToolBar(testAppClass);
    mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
    testAppClass->addToolBar(Qt::TopToolBarArea, mainToolBar);
    statusBar = new QStatusBar(testAppClass);
    statusBar->setObjectName(QString::fromUtf8("statusBar"));
    testAppClass->setStatusBar(statusBar);
  
QObject::connect(push, SIGNAL(clicked()), testAppClass, SLOT(push_copy())); //созданное соединение

  
retranslateUi(testAppClass);

    QMetaObject::connectSlotsByName(testAppClass);
    } // setupUi

    void retranslateUi(QMainWindow *testAppClass)
    {
    testAppClass->setWindowTitle(QApplication::translate("testAppClass", "testApp", 0, QApplication::UnicodeUTF8));
    push->setText(QApplication::translate("testAppClass", "=>", 0, QApplication::UnicodeUTF8));
    Q_UNUSED(testAppClass);
    } // retranslateUi

};

namespace Ui {
    class testAppClass: public Ui_testAppClass {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_TESTAPP_H


testapp.h

#ifndef TESTAPP_H
#define TESTAPP_H

#include <QtGui/QMainWindow>
#include "ui_testapp.h"

class testApp : public QMainWindow
{
    Q_OBJECT

public:
    testApp(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~testApp();
    
private:
    Ui::testAppClass ui;

public slots:  //объявление слота
        void push_copy();

};

#endif // TESTAPP_H


testapp.cpp

#include "testapp.h"
#include <QMessageBox>

testApp::testApp(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);
}

testApp::~testApp()
{

}
void testApp::push_copy() //реализация слота
{
    
    QString const szText=lineEdit->text();
    lineEdit_2->setText(szText);
    //QMessageBox::information(this,"test","box");
}

слот срабатывает, месаджбох вылетает... книги читал, там делают по другому, но хочется использовать дезайнер при создании приложения, а не писать код интерфейса вручную...
error C2065: lineEdit: необъявленный идентификатор. как правильно обращаться к элементам управления?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 21.2.2009, 16:27
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(kir @ 21.2.2009, 18:58) *
как правильно обращаться к элементам управления?
по аналогии с:
Цитата(kir @ 21.2.2009, 18:58) *
ui.setupUi(this);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 21.2.2009, 16:29
Сообщение #3


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(kir @ 21.2.2009, 15:58) *
QString const szText=lineEdit->text();


что это за запись такая?
не проще?
lineEdit_2->setText(lineEdit->text());
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kir
  опции профиля:
сообщение 21.2.2009, 16:38
Сообщение #4


Студент
*

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

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




Репутация:   0  


[code]
ui.lineEdit_2->setText(lineEdit->text());
[code]
error C2065: lineEdit: необъявленный идентификатор
error C2227: выражение слева от "->text" должно указывать на тип класса, структуры или объединения либо на универсальный тип
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 21.2.2009, 16:42
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(kir @ 21.2.2009, 19:38) *
выражение слева от "->text" должно указывать на тип класса, структуры или объединения либо на универсальный тип
ну, сам догадаешся?

Цитата(kir @ 21.2.2009, 18:58) *
только начал изучать qt и не пойму некоторые моменты
Цитата(kir @ 21.2.2009, 18:58) *
но хочется использовать дезайнер при создании приложения, а не писать код интерфейса вручную...
Рекомендую забросить дизайнер до тех пор пока не сделаешь хотябы один полноценный проект.

П.С. твои ошибки связаны только со знанием С++.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kir
  опции профиля:
сообщение 21.2.2009, 21:58
Сообщение #6


Студент
*

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

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




Репутация:   0  


был не внимателен не дописал ui...:)
спасибо за помощь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Xantrax_*
сообщение 28.9.2012, 18:02
Сообщение #7





Гости








    


А я все равно не пойму как это сделать, а если без UI? Если у меня код вот такой:
newnew.h
Раскрывающийся текст
#ifndef NEWNEW_H
#define NEWNEW_H

#include <QtGui/QWidget>

class NewNew : public QWidget
{
Q_OBJECT

public:
NewNew(QWidget *parent = 0);
~NewNew();
public slots:
void MyHandler();
};

#endif // NEWNEW_H

main.cpp:
Раскрывающийся текст
#include <QtGui/QApplication>
#include "newnew.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
NewNew w;
w.show();

return a.exec();
}

newnew.cpp:
Раскрывающийся текст
#include "newnew.h"
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>

NewNew::NewNew(QWidget *parent)
: QWidget(parent)
{
setFixedSize(800,600);
QPushButton *btn=new QPushButton("Quit",this);
btn->move(0,0);
QPushButton *btnclear=new QPushButton("Clear",this);
btnclear->move(100,0);
QPushButton *btncopy=new QPushButton("Copy",this);
btncopy->move(300,0);
QLineEdit *ln=new QLineEdit(this);
ln->move(100,50);
ln->setText("My First program");
QLineEdit *ln1=new QLineEdit(this);
ln1->move(300,50);
QObject::connect(btnclear,SIGNAL(clicked()),ln,SLOT(clear()));
QObject::connect(btncopy,SIGNAL(clicked()),this, SLOT(MyHandler()));

}
NewNew::~NewNew()
{}


void NewNew::MyHandler()

{ /*ln->setText(ln1->text());*/
ln->setText(ln1->text());

}

Как реализовать слот MyHandler?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Xantrax_*
сообщение 28.9.2012, 19:44
Сообщение #8





Гости








    


Вожусь уже пол дня. Где хоть посмотреть то это?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 3.1.2025, 7:27