crossplatform.ru

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

История благодарностей участнику Snake174 ::: Спасибо сказали: 9 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
12.4.2013, 6:04 Подскажите, пожалуйста, где можно скачать Qt 3 для Windows
Тебе какую именно версию надо?
У меня есть 3.2.2, 3.3.0, 3.3.1, 3.3.2, 3.3.3, и 3.3.4, но только commercial.
Или здесь:
Link
ricki,
18.12.2012, 12:59 Загрузка большого текстового файла
Создаёшь скроллбар, ставишь его рядом с QTextEdit-ом:
scrollBar = new QScrollBar( ... );
scrollBar->setOrientation( Qt::Vertical );
connect( scrollBar, SIGNAL(valueChanged(int)), this, SLOT(sbValueChanged(int)) );


Раскрывающийся текст

//------------------------------------------------------------------------------
void MainWindow::sbValueChanged( int value )
{
  TextEdit *viewer = dynamic_cast<TextEdit *>( pTabs->currentWidget() );

  int ind = pTabs->tabToolTip( pTabs->currentIndex() ).toInt();
  int cnt = 0;
  int pos = 0;
  int pos1 = 0;

  int mib = encodingComboBox->itemData( encodingComboBox->currentIndex() ).toInt();
  QTextCodec *codec = QTextCodec::codecForMib( mib );
  QTextStream in( &encodedData[ ind ] );

  in.setAutoDetectUnicode( false );
  in.setCodec( codec );

  QByteArray::ConstIterator itEnd = encodedData[ ind ].constEnd();

  for (QByteArray::ConstIterator it = encodedData[ ind ].constBegin(); it != itEnd; ++it)
  {
    if (*it == '\n')
      ++cnt;

    if (cnt == value)
    {
      pos = std::distance( encodedData[ ind ].constBegin(), it );
      cnt = 0;

      do
      {
        ++it;

        if (it == itEnd)
        {
          pos1 = std::distance( encodedData[ ind ].constBegin(), it );
          break;
        }

        if (*it == '\n')
          ++cnt;
      }
      while (cnt != visibleRowCount);

      pos1 = std::distance( encodedData[ ind ].constBegin(), it );

      break;
    }
  }

  in.seek( pos );
  viewer->clear();
  viewer->appendPlainText( in.read( pos1 - pos ) );
  in.device()->close();
}
//------------------------------------------------------------------------------
void MainWindow::resizeEvent( QResizeEvent *event )
{
  TextEdit *viewer = dynamic_cast<TextEdit *>( pTabs->currentWidget() );
  QFontMetrics fm( viewer->font() );

  visibleRowCount = viewer->height() / fm.height();

  QMainWindow::resizeEvent( event );
}
//------------------------------------------------------------------------------
// После загрузки файла в encodedData вызываешь этот слот
void MainWindow::updateTextEdit()
{
  TextEdit *viewer = dynamic_cast<TextEdit *>( pTabs->currentWidget() );
  viewer->clear();

  int mib = encodingComboBox->itemData( encodingComboBox->currentIndex() ).toInt();
  QTextCodec *codec = QTextCodec::codecForMib( mib );
  int ind = pTabs->tabToolTip( pTabs->currentIndex() ).toInt();
  QTextStream in( &encodedData[ ind ] );

  int data_size = encodedData[ ind ].size();
  int bytesToRead = 0;
  rowCount = 0;

  QByteArray::ConstIterator itEnd = encodedData[ ind ].constEnd();

  for (QByteArray::ConstIterator it = encodedData[ ind ].constBegin(); it != itEnd; ++it)
  {
    if (*it == '\n')
      ++rowCount;

    if (rowCount == visibleRowCount || it == itEnd)
      bytesToRead = std::distance( encodedData[ ind ].constBegin(), it );
  }

  viewer->appendPlainText( in.read( bytesToRead ) );

  scrollBar->setMaximum( rowCount );

  viewer->moveCursor( QTextCursor::Start );
}



encodedData - массив QByteArray

У QTextEdit-a делаешь:
setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff );

Ну что-то типа этого у меня было.
ALeXUI,
29.11.2012, 4:29 Проект с OpenGL.
В .pro файле: LIBS += -lopengl32 -lglu32
alsav22,
16.10.2012, 5:09 Как нарисовать текст в углу QGlWidget?
А если так попробовать:
Началом отсчёта делаем верхний левый угол.
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glViewport( 0, 0, width(), height() );
glOrtho( 0.0, width(), height(), 0.0, -1.0, 1.0 );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
renderText( 10.0, 10.0, 0.0, "Text" );  // верхний левый угол

Вставляй код после отрисовки фигур, иначе текст будет перекрываться ими.
RazrFalcon,
18.9.2012, 8:04 QPlainTextEdit текста обработка
Что-то типа этого:
textEdit->textCursor().movePosition( QTextCursor::Start, QTextCursor::MoveAnchor );

for (register int i = 0; i < textEdit->document()->lineCount(); ++i)
{
    QTextBlock block = textEdit->document()->findBlockByLineNumber(i);
    ...
}
qt_user,
27.6.2012, 6:56 QT и DBF
Посмотри здесь qtDbf
fortero, tetramin,
25.5.2012, 4:31 Наследник QGraphicsScene и ItemIsMovable
Попробуй так:
qmyscene.h

#ifndef QMYSCENE_H
#define QMYSCENE_H

#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsSceneMouseEvent>

class QMyScene : public QGraphicsScene
{
   Q_OBJECT

public:
    QMyScene(QWidget *parent = 0);

    protected:
    void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
    void mousePressEvent(QGraphicsSceneMouseEvent *event);

signals:
    void CursorSceneCoordsX(QString coordX);
    void CursorSceneCoordsY(QString coordY);

private:

};

#endif // QMYSCENE_H



qmyscene.cpp

#include <QDebug>
#include <QGraphicsSceneMouseEvent>
#include "qmyscene.h"

QMyScene::QMyScene(QWidget *parent):
  QGraphicsScene( parent )
{
}

void QMyScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{

     QPointF coords = event->scenePos();
    emit CursorSceneCoordsX(QString::number(coords.x()));
    emit CursorSceneCoordsY(QString::number(coords.y()));
  QGraphicsScene::mouseMoveEvent(event);
}

void QMyScene::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
    qDebug()<<event->button();
  QGraphicsScene::mousePressEvent(e);
}

kenthfild,
26.11.2011, 6:30 Дополнительный текст в QLineEdit
Попробуй что-то типа этого:
QLineEdit *path = new QLineEdit( this );
path->setObjectName("path");

QLabel *files = new QLabel( path );
files->setObjectName("files");
files->setStyleSheet("QLabel#files { border: none; padding: 1px; background-color: rgba(255, 255, 255, 0); }");

path->setStyleSheet( QString("QLineEdit#path { padding-left: %1px; }").arg( files->width() ) );


При изменении надписи files надо будет опять делать path->setStyleSheet( QString("QLineEdit#path { padding-left: %1px; }").arg( files->width() ) );

Код не проверялся.
RazrFalcon,

RSS Текстовая версия Сейчас: 22.11.2024, 15:54