crossplatform.ru

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

История благодарностей участнику kwisp ::: Спасибо сказали: 113 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
16.10.2009, 11:06 Динамический интерфейс
bo0blik, почитай про X-solution я иногда использую.
пример есть файл str.def
X("привет")
Х("как дела?")
Х("у меня тоже ничего")
...//и так далее хоть 1000 штук

там где тебе надо получить объекты с этим самыми строками из str.def
пишешь
QList<QPushButton*> btnLst;
#define X(a) btnLst<<(new QPushButton(a));
# include "str.def"
#undef X//

ну или что то подобное.
есть и + и -.
bo0blik,
13.10.2009, 13:01 Ошибка 127
Kagami,
нет линукса под рукой, но помниться мне что не должна прокатить такая команда
там полностью название пакета надо указывать, а он пакет в котором компилятор наверное не просто g++ называется, а еще всякие буковки цифорки и проч.


posi4,
13.10.2009, 11:20 CallBack & Com
Цитата(blondinka @ 13.10.2009, 11:45) *
Я не знаю можно ли поймать qt-шные сигналы,напрмер, в делфи.

а сразу нельзя было это написать:)


посылать события, можно поробовать.



а может qt за тебя будет это делать
вот
тебе надо искать что такое ActiveX event и как им пользоваться.
blondinka,
13.10.2009, 7:58 CallBack & Com
слушай а если всё это это прочитать.
столько интересного. я осилил только оглавление :)
AD, blondinka,
3.10.2009, 18:49 Вопрос по вызову QProcess ?
DEADHUNT,
я запустил так
QStringList s;
proc.start("bat.bat",s);

файл bat.bat
start cmd

сигнал о завершении работы приходит.
DEADHUNT,
30.9.2009, 9:03 Отрисовка линий по нажатию кнопки мыши
вот тебе кусок кода
разбирайся.
Раскрывающийся текст

#ifndef __MOUSELINE_H__
#define __MOUSELINE_H__
#include <QWidget>
#include <QVector>
#include <QPoint>
#include <QPainter>
#include <QBrush>
#include <QPen>
#include <QPaintEvent>

class MouseLine: public QWidget {
    public:
        MouseLine(QWidget* p = 0): QWidget(p)
        {

        }
    private:
        QVector<QPoint>        m_points;

    protected:
        void paintEvent(QPaintEvent* ev)
        {
            if(m_points.isEmpty()) QWidget::paintEvent(ev);
            else if(m_points.size() > 1){
                QPainter painter(this);
                painter.setPen(Qt::red);
                QVectorIterator<QPoint> iter(m_points);
                QPoint begin,end;
                end  = iter.next();
                while(iter.hasNext()){
                    begin = end;
                    end = iter.next();
                    painter.drawLine(begin,end);
                }
//                painter.drawLines(m_points);
//                painter.drawLines(m_points.data() + 1, m_points.size()/2 - 1);
            }
        }
        void mousePressEvent(QMouseEvent* ev)
        {
            Qt::MouseButton button = ev->button();
            const QPoint& point = ev->pos();
            if(button == Qt::LeftButton) m_points.append(point);
            else if(button == Qt::RightButton) m_points.clear();
            update();
        }
        void mouseMoveEvent(QMouseEvent* ev)
        {
            m_points.last() = ev->pos();
            update();
        }

};


#endif

myr,
23.9.2009, 13:07 какой сегодня день
AD,
привет тебе как от "пиджака" "пиджаку"
:)
мои скромные поздравления.
AD,
22.9.2009, 17:24 Как в Линуксе выводить на экран данные из COM-порта?
tail -f [device COM port`a]
Litkevich Yuriy,
10.9.2009, 9:15 10 в степени 3
Зарегистрировано пользователей: 1000
Приветствуем последнего зарегистрированного по имени giga
.
и пусть там спамеров не мало
но все же мои скромные поздравления администрации.
теперь тут один килопользователь:)
Litkevich Yuriy, ViGOur,
2.9.2009, 13:30 QTableWidget и QTableWidgetItem
roland_ast,
void QTableWidgetItem::setTextAlignment ( int alignment )
не помогает что ли?
roland_ast,
26.8.2009, 16:33 Переименовать файл в zip архиве...
ViGOur,
чет ни пойму куда же проще.
:mellow:
ViGOur,
16.8.2009, 0:28 BRE
хоть и с опозданием но все же.
поздравляю:)!!!!!
BRE,
30.7.2009, 14:29 QTableWidget, QLabel и html.
ALex-Annet,
может
что нибудь

void setOpenExternalLinks ( bool open )
void setTextInteractionFlags ( Qt::TextInteractionFlags flags )
ALex-Annet,
29.7.2009, 9:09 Вопрос по функции drawText
AD,
как так не помогло.
???
m_painter->begin(this);
m_painter->fillRect(CSKMain::cellRects[CSKSession::e_TIME],CSKConf::colorByStation(pointState));
m_painter->setFont(CSKConf::time_font());
m_painter->drawText(CSKMain::cellRects[CSKSession::e_TIME],Qt::AlignCenter,point->Time().toString(CSKConf::timeFormat));
m_painter->end();

где
CSKMain::cellRects[CSKSession::e_TIME] - QRect области рисования текста
CSKConf::colorByStation(pointState) - цвет фона (у тебя это может быть кусок картинки фона)
CSKConf::time_font() - цвет времени
point->Time().toString(CSKConf::timeFormat) - QString времени
AD,
28.7.2009, 15:28 Вопрос по функции drawText
AD,
пользуй не просто drawText а
fillRect
затем
drawText() в тотже rect что и затер фоном:)
AD,
27.7.2009, 13:55 Статическая линковка, внешней библиотеки через файл проекта qt
pirks,
QTшный файл проекта нужен для предварительной сборки инфы для изготовления makefile для сборки.
в assistant подробно описывается как добавляются библиотеки дефайны и прочее.
набери неполенись qmake manual d assistent`e -- всё узнаешь. :)
pirks,
21.7.2009, 10:02 C++: как выбрать тип переменной во время выполнения?
AD скорее всего правильный путь тебе указал.

Цитата(mezmay @ 21.7.2009, 10:28) *
но так слишком много case'ов придется везде вставлять.

конкретно рассматривая эту проблему, могу предложить как вариант массивы указателей на функции.
mezmay,
20.7.2009, 12:17 Работа в Qt Designer с наследником моей формы
это не Promoted Widgets... случаем?
mva,
16.7.2009, 12:47 Перемещение QFrame
Цитата(AD @ 16.7.2009, 13:41) *
Какую виртуальную функцию виджета надо перехватить при наведении фокуса на визир?

если ты под фокусом понимаешь курсор мыши то.
это
enterEvent()
leaveEvent()
AD,
16.7.2009, 12:44 Управление активностью актионов (QAction)
Цитата(fsMark @ 16.7.2009, 13:29) *
в зависимости от состояни приложения некоторые из них активны некоторые нет..

ну вот и ответ.
по смене состояния управляй действиями.

Цитата(fsMark @ 16.7.2009, 13:29) *
навскидку придумал только обойти рекурсивно всех детей окна имеющих тип QAction и соединить их выполнение с функцией управляющей активностью

раз уж так то у каждлого тулбара есть метод
void actionTriggered ( QAction * action )
число соединений уменьшится в число действий раз:)
fsMark,
9.6.2009, 14:27 Переход с вкладки на вкладку
AD,
void QTabWidget::currentChanged ( int index ) [signal]
+ события можно использовать.
AD,
8.6.2009, 17:01 sleep в main'е
а собственно почему тогда не устраивает
qSleep() ?
qWait() ?
flankerr,
29.5.2009, 16:03 Работа с гиф анимацией
я бы сказал для гифа точно в классе
QGifHandler не перепопределены толком виртуальные функции предка QImageIOHandler
в остальных лень смотреть кому интересно в src/plugins/imageformats/ лежат дочерние классы в src\gui\image\ родитель QImageIOHandler

Цитата(igor_bogomolov @ 29.5.2009, 16:58) *
У QMovie loopCount () & frameCount () возвращают -1

странно в исходниках они вроде переопределены по своему .... хм..
ну да черт с ними точно. потому что посмотрел я на баги.... многовато их... надо почаще туда лазить а то так голову поломать можно.

P.S. кошара зачётная.
почитай там в юморе в непридуманных историях есть про кота как раз рассказик.
igor_bogomolov,
29.5.2009, 14:49 Работа с гиф анимацией
igor_bogomolov,
лажа какая то
в исходниках добрался до виртуальной функции класса QImageIOHandler::imageCount() int
int QImageIOHandler::imageCount() const
{
    return canRead() ? 1 : 0;
}
int QImageReader::imageCount() const
{
    if (!d->initHandler())
        return -1;
    return d->handler->imageCount();
}

собственно всё.
она кроме 0 и 1 ничего не вернет
:)

Цитата(kwisp @ 29.5.2009, 15:07) *
canRead() is a lightweight function that only does a quick test to see if the image data is valid. read() may still return false after canRead() returns true, if the image data is corrupt.

я это ктому что после рида то проверка нужна :) у тебя нет

Цитата(igor_bogomolov @ 29.5.2009, 15:44) *
А как новый цикл начать без использования setFileName?

походу только так
bool QImageReader::jumpToImage ( int imageNumber )
igor_bogomolov,
27.5.2009, 10:20 QPaintEvent, installEventFilter, QPainter, Overpainting
igor_bogomolov,
готово
проблема в viewport() он возвращает не совсем точную геометрию текседита.
я так написал криво извини я всетаки на работе думаю понятно

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

#include <QtCore/QEvent>
#include <QtCore/QTimer>
#include <QtGui/QTextEdit>
#include <QtGui/QGridLayout>
#include <QtGui/QVBoxLayout>
#include <QtGui/QPainter>
#include <QtGui/QApplication>
#include <QtGui/QPushButton>
#include <QtDebug>

#include "form.h"

form::form(QWidget *parent) : QMainWindow(parent)
{
    setMinimumSize(200, 180);
    centralwidget = new QWidget(this);
    centralwidget->setObjectName("centralwidget");
    setCentralWidget(centralwidget);

    QTextEdit *textedit = new QTextEdit(centralwidget);
    textedit->setObjectName("textedit");
    QPushButton *btn = new QPushButton("text", this);
    btn->setObjectName("btn");

    QVBoxLayout *vl = new QVBoxLayout(centralwidget);
    vl->addWidget(textedit);
    vl->addWidget(btn);

    centralwidget->setLayout(vl);

    centralwidget->installEventFilter(this);
    textedit->viewport()->installEventFilter(this);
    btn->installEventFilter(this);
}


bool form::eventFilter(QObject *obj, QEvent *event)
{
    if(event->type() == QEvent::Paint) {
        obj->removeEventFilter(this);
        QApplication::sendEvent(obj, event);
        obj->installEventFilter(this);

//        qDebug()<< qobject_cast<QWidget*>(obj)
  //              << qobject_cast<QWidget*>(obj)->geometry()
    //            <<" "
    //            << qobject_cast<QWidget*>(obj)->visibleRegion();

        QPainter p(qobject_cast<QWidget*>(obj));
        p.setPen(Qt::red);
        if(qobject_cast<QWidget*>(obj)->objectName() == "qt_scrollarea_viewport")
            p.setWindow(centralwidget->findChild<QTextEdit*>("textedit")->geometry());
        else
        p.setWindow(qobject_cast<QWidget*>(obj)->geometry());
        p.drawLine(rect().topLeft(), rect().bottomRight());
        return true;
    }
    return false;
}

igor_bogomolov,

5 страниц V  < 1 2 3 4 5 >
RSS Текстовая версия Сейчас: 17.1.2021, 19:40