QT creator вывод текста

Модератор: Модераторы разделов

Аватара пользователя
Nekosargot
Сообщения: 159

QT creator вывод текста

Сообщение Nekosargot »

Только начал изучение QT, и сразу вопрос, решению которого гугл не помог, увы.
Задача-то простая, только я без понятия как её сделать (встроенная документация и doc.crossplatform.ru мне не помогли). Хочу вывести текст в TextEdit по нажатию кнопки но не знаю как.


код.

Код: Выделить всё

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "iostream"
using namespace std;
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

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

void MainWindow::on_pushButton_clicked()
{
    cout << "test" << endl;
   // ну, полагаю выглядит практически как строчка выше...
}


Помогите, пожалуйста.
Также прийму помощь ввиде названий книг разряда "QT4 для начинающих"
Sempron LE-140 3.8Ghz |2gb ddr2|1TB|Debian stable x86-64 + Ratpoison
Она: Женатые мужчины для меня не существуют, как класс.
Он: Только как объекты. © Bash
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: QT creator вывод текста

Сообщение RasenHerz »

Вот пример из моей программы:

Код: Выделить всё

SettingsDownloads::SettingsDownloads(QWidget *parent):
        QWidget(parent)
{
    setupUi(this);

    init();
}

...

void SettingsDownloads::init(){
    {//Downloads
        /*
          ..........
         */

        connect(pushButton_BROWSE, SIGNAL(clicked()), SLOT(slotBrowse()));
        connect(pushButton_BROWSE1, SIGNAL(clicked()), SLOT(slotBrowse()));
    }

    ...............

}

void SettingsDownloads::slotBrowse(){
    QString dir = QFileDialog::getExistingDirectory(this, tr("Select directory"), QDir::homePath());

    if (dir.isEmpty())
        return;

    if (sender() == pushButton_BROWSE)
        lineEdit_DLDIR->setText(dir);
    else if (sender() == pushButton_BROWSE1)
        lineEdit_UNF_DL_DIR->setText(dir);
}


P.S. документацию читать надо
P.P.S. И освойте уже множественное наследование, имхо, доступ к элементам интерфейса через ui-> - очень неудобно.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: QT creator вывод текста

Сообщение NickLion »

RasenHerz писал(а):
03.01.2010 01:09
P.P.S. И освойте уже множественное наследование, имхо, доступ к элементам интерфейса через ui-> - очень неудобно.

Угу, согласен, мне тоже не нравится. Не понял зачем такое поведение сделали умолчательным. Может всё же жу-жу неспроста?
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: QT creator вывод текста

Сообщение Crazy »

NickLion писал(а):
03.01.2010 12:09
RasenHerz писал(а):
03.01.2010 01:09
P.P.S. И освойте уже множественное наследование, имхо, доступ к элементам интерфейса через ui-> - очень неудобно.

Угу, согласен, мне тоже не нравится. Не понял зачем такое поведение сделали умолчательным. Может всё же жу-жу неспроста?

Инкапсуляция одна из священных коров ООП.

Desipere in loco
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: QT creator вывод текста

Сообщение RasenHerz »

NickLion писал(а):
03.01.2010 12:09
RasenHerz писал(а):
03.01.2010 01:09
P.P.S. И освойте уже множественное наследование, имхо, доступ к элементам интерфейса через ui-> - очень неудобно.

Угу, согласен, мне тоже не нравится. Не понял зачем такое поведение сделали умолчательным. Может всё же жу-жу неспроста?

Возможно, так лучше декомпозиция объектов, но я все равно не вижу в ней смысла - это класс формы на которой расположены все эти виджеты и лично мне удобнее получать к ним доступ как ко внутренним полям класса. Вот для какого-нибудь плагина или фронтенда к либе такое поведение было бы очень даже кстати.
Спасибо сказали:
Doublespace
Сообщения: 275
ОС: Debian Lenny,Squeeze,Centos

Re: QT creator вывод текста

Сообщение Doublespace »

Вообще-то практически во всех примерах в книгах, да и тех,что идут к Qt4, формы, генерируемые построителем не используются. Благо, layouts позволяют вручную построить не менее красивый интерфейс. И программа более понимаемая для себя выходит, и короче значительно. Лично я использую этот построитель максимум прикинуть вид интерфейса, потом переписываю с ноля. По теме - делаете connect (&имя_ кнопки,SIGNAL(clicked()),this,SLOT(имя_подпрограммы_слота())); в конструкторе окна с вашими кнопкой и TextEdit
В хидере класса окна прописываете строку public slots: void имя_подпрограммы_слота();
внутри описания класса. В реализациях класса добавляется строка void имя_класса_окна::имя_подпрограммы_слота()
{собственно текст;} Это если у вас обьект-кнопка - именно кнопка, а не указатель на нее. Лучше все ж указатель, чтобы в конструкторе ее сгенерить через new, тогда знак & не нужен.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: QT creator вывод текста

Сообщение NickLion »

Ну, так файл сгенерированный построителем форм обрабатывается UIC'ом, на выходе обычный C++ файл. Это не диалоги в винде, которые в ресурсах валяются. Смысл прикинуть в построителе, а затем с нуля... не понимаю :)
Спасибо сказали:
Doublespace
Сообщения: 275
ОС: Debian Lenny,Squeeze,Centos

Re: QT creator вывод текста

Сообщение Doublespace »

Да сейчас уже и так не использую. Раньше- смотрел пример кода, выкидывал лишнее. Кстати еще плюс ручной работы - легче реализовать динамический интерфейс.
Спасибо сказали:
NSV
Сообщения: 38
ОС: kubuntu 9.10+10.04

Re: QT creator вывод текста

Сообщение NSV »

Nekosargot писал(а):
03.01.2010 00:38
...
Также прийму помощь ввиде названий книг разряда "QT4 для начинающих"

Макс Шлее - Qt4.5. Профессиональное программирование на C++
кое что он-лайн
Спасибо сказали: