Название: Не видно данные из QTextEdit Отправлено: Kostya от Ноябрь 11, 2011, 14:00 Здраствуйте!
Хочу попросить совет по QT 4.5.0 Пишу простую программу состоящую из QPushButton, QMessageBox, QTextEdit. Данная программа должна при нажатии на кнопку выводить сообщения QMessageBox с текстом введенном в QTextEdit. Проблема заключается в том, что не видно текст в QMessageBox и при закрытии программы выдается ошибка. Вот код моей программы: #include <QApplication> #include <QFont> #include <QPushButton> #include <QMessageBox> #include <QString> #include <QDialog> #include <QTextEdit> #include <QString> #include <QWidget> #include <QVBoxLayout> #include <QtGlobal> int main(int argc, char *argv[]) { QApplication app(argc, argv); QTextEdit textedit; QString str=textedit.toPlainText(); QMessageBox msgBox; msgBox.setText(str); QPushButton open("Open"); open.resize(75, 30); open.setFont(QFont("Times", 18, QFont::Bold)); QVBoxLayout layout; layout.addWidget(&textedit); layout.addWidget(&open); QWidget window; window.setLayout(&layout); QObject::connect(&open, SIGNAL(clicked()), &msgBox, SLOT(open())); window.show(); return app.exec(); } Буду очень благодарен за помощь! Название: Re: Не видно данные из QTextEdit Отправлено: kambala от Ноябрь 11, 2011, 14:22 тут текст месседжбокса читается сразу из текстэдита, до появления формы, а там находится пустая строка. для того, чтобы месседжбокс отображал любую введенную строку, надо писать свой класс виджета и добавить в него слот, который надо соединить с сигналом clicked() своей кнопки и в котором будет код:
Код
а какая ошибка вылазит при завершении? Название: Re: Не видно данные из QTextEdit Отправлено: Kostya от Ноябрь 12, 2011, 00:01 Попробовал внести изменения в свой код и у меня получилось два файла main.cpp и mainwindow.h
Вот код нового файла main.cpp: #include <QApplication> #include <QFont> #include <QPushButton> #include <QMessageBox> #include <QString> #include <QDialog> #include <QTextEdit> #include <QString> #include <QWidget> #include <QVBoxLayout> #include <QtGlobal> #include "mainwindow.h" class MyClass : public QWidget { public: MyClass(QWidget *parent = 0); ) MyClass::MyClass(QWidget *parent=0) :QWidget(parent) { QTextEdit textedit; QMessageBox msgBox; QPushButton open("Open"); open.resize(75, 30); open.setFont(QFont("Times", 18, QFont::Bold)); QVBoxLayout layout = new QVBoxLayout; layout.addWidget(&textedit); layout.addWidget(&open); setLayout(layout); connect(&open, SIGNAL(clicked()), &msgBox, SLOT(showMessageBox())); } void MyClass::showMessageBox() { QMessageBox::information(this, "my title", textedit->toPlainText()); } int main(int argc, char *argv[]) { QApplication app(argc, argv); MyClass widget; widget.show(); return app.exec(); }; И вот код mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QWidget> class QMessageBox; class MyClass : public QWidget { Q_OBJECT public: MyClass (QWidget *parent=0); int value() const; public slots: void showMessageBox(); signals: void clicked(); private: QMessageBox *msgBox; }; #endif // MAINWINDOW_H При компиляции QT выдает следующие ошибки: redefinition of 'class MyClass' previos definition of 'class MyClass' expected '}' at end of input expected unquafied-id at end of input Прошу помочь разобраться с моими ошибками. Заранее благодарен!!! Название: Re: Не видно данные из QTextEdit Отправлено: kambala от Ноябрь 12, 2011, 00:11 в main.cpp оставь только функцию int main(int argc, char *argv[]) (ну и требуемые инклуды), а второй main.cpp переименуй в mainwindow.cpp
и вообще займись изучением C++ Название: Re: Не видно данные из QTextEdit Отправлено: iroln от Ноябрь 13, 2011, 21:52 Не в тему, конечно, но уважайте же людей, Kostya, используйте хотя бы тэг code:
Код
Код: // это обычный тег code Название: Re: Не видно данные из QTextEdit Отправлено: Kostya от Ноябрь 13, 2011, 22:42 Да действительно я C++ и Qt Creator не знаю, но очень хотел бы научится. Если поможете советом как это можно сделать и с чего начинать - буду очень благодарен!
А если еще поможете найти ошибки в программе буду благодарен в двойне!! Тег code постараюсь употреблять (прошу прощения за неудобства). С уважением Kostya! Название: Re: Не видно данные из QTextEdit Отправлено: Mikhail от Ноябрь 14, 2011, 11:35 Смотри рабочий пример по твоей задаче.
Изучай С++ и Qt. Название: Re: Не видно данные из QTextEdit Отправлено: Kostya от Ноябрь 14, 2011, 15:11 Огромное спасибо всем кто помогал мне разбираться с ошибками в моей программе!
А всем Вам очень признательный! Действительно надо учить C++ и QTCreator!!!! C уважением Kostya!!! Название: Re: Не видно данные из QTextEdit Отправлено: kambala от Ноябрь 14, 2011, 15:55 как можно учить IDE? :)
Название: Re: Не видно данные из QTextEdit Отправлено: Kostya от Ноябрь 14, 2011, 22:19 Простите меня за безграмотность, но к сожалению я не знаю что такое IDE
Название: Re: Не видно данные из QTextEdit Отправлено: iroln от Ноябрь 14, 2011, 22:37 Kostya, QtCreator - это IDE.
IDE - Интегрированная среда разработки. (http://ru.wikipedia.org/wiki/Интегрированная_среда_разработки) Название: Re: Не видно данные из QTextEdit Отправлено: Kostya от Ноябрь 15, 2011, 12:17 Большое спасибо за подсказку!!!
|