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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: drawText in QPainter  (Прочитано 8842 раз)
AndyKuvaldin
Гость
« Ответ #15 : Март 20, 2012, 19:19 »

Код:
#ifndef MYMAIN_H
#define MYMAIN_H

#include <QtGui/QMainWindow>

namespace Ui
{
    class myMain;
}

class myMain : public QMainWindow
{
    Q_OBJECT

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

protected:
    void paintEvent(QPaintEvent *event);

private:
    QString str;
    Ui::myMain *ui;
};

#endif // MYMAIN_H

Код:
#include "mymain.h"
#include "ui_mymain.h"
#include "QFile.h"
#include "QString.h"
#include "QTextStream.h"
#include "QRect.h"
#include "QFont.h"
#include "QPainter.h"

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

    QFile myFile("readme.txt");
    if(!myFile.open(QIODevice::ReadOnly))
       return;
    QTextStream stream(&myFile);
    while (!stream.atEnd())
    {
      str = stream.readLine().toLocal8Bit();
    }
}

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

void myMain::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    QRect r = QRect(0, 0, 200, 200);
    painter.setFont(QFont("Times", 14, QFont::Normal));
    painter.drawRect(r);
    painter.drawText(r, Qt::AlignCenter | Qt::TextWordWrap, str);
}

Ошибка collect2 ld returned 1
Записан
mutineer
Гость
« Ответ #16 : Март 20, 2012, 19:23 »

точнее ошибку напиши
Записан
AndyKuvaldin
Гость
« Ответ #17 : Март 20, 2012, 19:25 »

Выполняется сборка проекта Object...
Настройки не изменились, этап QMake пропускается.
Запускается: C:/Qt/2009.03/mingw/bin/mingw32-make.exe -w
mingw32-make: Entering directory `C:/Qt/project/Object'
C:/Qt/2009.03/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Qt/project/Object'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\Object.exe debug/main.o debug/mymain.o debug/moc_mymain.o -L"c:\Qt\2009.03\qt\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
mingw32-make[1]: Leaving directory `C:/Qt/project/Object'
mingw32-make: Leaving directory `C:/Qt/project/Object'
C:\Qt\2009.03\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot open output file debug\Object.exe: Permission denied
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\Object.exe] Error 1
mingw32-make: *** [debug] Error 2
Завершено с кодом возврата 2.
Ошибка во время сборки проекта Object
Во время выполнения сборки на этапе 'Make'
Записан
BRE
Гость
« Ответ #18 : Март 20, 2012, 19:27 »

Заверши предыдущую сборку программы. Убей в памяти Object.exe. Улыбающийся
Записан
AndyKuvaldin
Гость
« Ответ #19 : Март 20, 2012, 19:39 »

А почему функция вызывается один раз на 1 строчку последнюю...
А что нужно исправить если я хочу что бы каждая считанная строка оказывалась отрисованная...?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #20 : Март 20, 2012, 20:02 »

сохрани все строки в QStringList и рисуй их
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
mutineer
Гость
« Ответ #21 : Март 20, 2012, 20:50 »

А почему функция вызывается один раз на 1 строчку последнюю...
А что нужно исправить если я хочу что бы каждая считанная строка оказывалась отрисованная...?

потому что каждая новая считанная строка перезаписывает старую
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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