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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 63 64 [65] 66 67 ... 69
961  Qt / 2D и 3D графика / Re: Проблема с наследованием QGraphicsItemGroup : Июль 19, 2011, 18:29
на счет Q_OBJECT спасибо, помогло.
962  Qt / 2D и 3D графика / Re: Проблема с наследованием QGraphicsItemGroup : Июль 19, 2011, 18:27
Задача, есть шкаф с модулями ввода/вывода. В кажом шкафу может быть 4 кассеты, в каждой кассете по 13 модулей максимум.
Каждый модуль у меня наследуется от QGraphicsObject, по сути прямоугольник с некоторой инфой.
Так вот задача, мышью кидать эти модуля по кассетам (я хотел их реализовать через группы), и внутри кассеты эти модули уже выравнивались и рисовались по своим правилам. Или для такой задачи QGraphicsItemGroup не годится и все координаты пересчитывать мне вручную?
963  Qt / 2D и 3D графика / Проблема с наследованием QGraphicsItemGroup : Июль 19, 2011, 18:21
Вопрос, почему такой код
Код:
#include <QObject>
#include <QGraphicsItemGroup>

class QCassete : public QGraphicsItemGroup
{
    Q_OBJECT

protected:

    QSizeF  fsize;
    QRectF  boundingRect() const;
    void    paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);

public:

    QCassete(QGraphicsItem * parent = 0);
};
Выдает ошибку компиляции:
debug/moc_qcassete.cpp:41: error: 'staticMetaObject' is not a member of 'QGraphicsItemGroup'
c:/Qt/2010.04/qt/include/QtCore/../../src/corelib/kernel/qobject.h: In member function 'virtual const QMetaObject* QCassete::metaObject() const':
c:/Qt/2010.04/qt/include/QtCore/../../src/corelib/kernel/qobject.h:296: error: 'QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > QObject::d_ptr' is protected
debug/moc_qcassete.cpp:51: error: within this context
c:/Qt/2010.04/qt/include/QtCore/../../src/corelib/kernel/qobject.h:296: error: object missing in reference to 'QObject::d_ptr'
debug/moc_qcassete.cpp:51: error: from this location
c:/Qt/2010.04/qt/include/QtCore/../../src/corelib/kernel/qobject.h:296: error: 'QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > QObject::d_ptr' is protected
debug/moc_qcassete.cpp:51: error: within this context
c:/Qt/2010.04/qt/include/QtCore/../../src/corelib/kernel/qobject.h:296: error: object missing in reference to 'QObject::d_ptr'
debug/moc_qcassete.cpp:51: error: from this location
debug/moc_qcassete.cpp: In member function 'virtual void* QCassete::qt_metacast(const char*)':
debug/moc_qcassete.cpp:59: error: 'qt_metacast' is not a member of 'QGraphicsItemGroup'
debug/moc_qcassete.cpp: In member function 'virtual int QCassete::qt_metacall(QMetaObject::Call, int, void**)':
debug/moc_qcassete.cpp:64: error: 'qt_metacall' is not a member of 'QGraphicsItemGroup'
mingw32-make[1]: *** [debug/moc_qcassete.o] Error 1
mingw32-make: *** [debug] Error 2
Процесс "C:/Qt/2010.04/mingw/bin/mingw32-make.exe" завершился с кодом %2.
964  Qt / Установка, сборка, отладка, тестирование / Re: Qt 4.7.2 - не работает отладка в Ubuntu : Июль 19, 2011, 09:36
может проблема возникла из за того, что даную прогу я собираю периодически под виндовс/линукс. хотя конечно я не думаю что это есть причина.
965  Qt / Установка, сборка, отладка, тестирование / Qt 4.7.2 - не работает отладка в Ubuntu : Июль 15, 2011, 11:35
Привет. После очередного обновления системы (и Qt в частности), при попытке запуска приложения на отладку выскакивает окно с сообщением:
"Похоже что это не отладочная сборка. Установка точек останова по имени файла и номеру строки может не работать". Приложение собрано как Debug. Раньше все работало нормально. Отладка не работает. В Win в Qt 4.6.3 (пока не обновлял) отладка работает. Кто знает как побороть проблему?
966  Qt / Общие вопросы / QDateTime и time_t: не корректно работает код : Июль 08, 2011, 12:37
Нужно вычислить среднее время между двумя данными в формате time_t.
Раньше под qnx я делал так:
Код:
time_t	middle_time = (time_t) ((begin_t+end_t)/2.0);
t1 = localtime(&middle_time);
sprintf(time_buff,time_format_str,t1->tm_hour,t1->tm_min,t1->tm_sec);
И все работает корректно, отображается среднее время между началом (begin_t) и концом(end_t) интервала.
Теперь код переношу в Qt, задействовал для удобства QDateTime.
Код:
dt.setTime_t(((time_t)(fhandler->begin_time()+fhandler->end_time())/2.0));
ui->middleLabel->setText(dt.toString(timeFormatStr));
Значение времени выводится совершенно иное и не похожее на то, что должно быть.
Есть ли способ с помощью QDateTime вычислить среднее время между begin_time и end_time, при условии что они имеют тип time_t?
967  Qt / Пользовательский интерфейс (GUI) / Re: Медленно закращиваются ячейки в TableWidget : Июль 06, 2011, 17:40
решение оказалось простым: нет смысла использовать setUpdatesEnabled(...). Без него работает намного быстрее, загрузка 0%.
968  Qt / Пользовательский интерфейс (GUI) / Медленно закращиваются ячейки в TableWidget : Июль 06, 2011, 17:06
Есть TableWdiget. Размер 24 * 64 ячейки.
Есть такой же массив uin8_t.
Нужно пройтись по этому массиву и в зависимости от значения ячейки массива зарисовать нужным цветом ячейку в таблице.
Вот мой код
Код:
void    CShnHandler::updateTable(QTableWidget * tab,int modCount, int modPin, uint8_t * dataPtr)
{
    if(tab && modCount && modPin && dataPtr)
    {
        tab->setUpdatesEnabled(false);
        for(int col = 0; col<modCount; col++)
        for(int row = 0; row<modPin; row++)
        {
            switch(dataPtr[col*modPin+row])
            {
            case    0:
                tab->item(row,col)->setBackgroundColor(Qt::gray);
                break;
            case    1:
                tab->item(row,col)->setBackgroundColor(Qt::green);
                break;
            case    2:
                tab->item(row,col)->setBackgroundColor(Qt::red);
                break;
            default:
                tab->item(row,col)->setBackgroundColor(Qt::blue);
                break;
            }

        }
        tab->setUpdatesEnabled(true);
    }
}
Данные обновляю с частотой 4 раза в секунду. процессор грузится на 35-40%.
Может есть более оптимальный способ быстрой отрисовки ячеек?
969  Qt / Пользовательский интерфейс (GUI) / Re: Хранение указателей на объекты в закладках QTabWidget : Июль 06, 2011, 15:26
решил сделать наследника от QTabWidget, в котором обращаться буду к tabBar, у которого есть свойство tabData/setTabData(index).
970  Qt / Пользовательский интерфейс (GUI) / Re: Хранение указателей на объекты в закладках QTabWidget : Июль 06, 2011, 15:07
объясняю: например есть три вкладки, каждой вкладке соответствует указатель на некий объект, который описывает работу с этой конкретной вкладкой.
когда я кликаю на виджет tabWidget, в слоте узнаю какая вкладка выбрана, извлекаю указатель и получаю нужный объект, который задает логику работы программы.
971  Qt / Пользовательский интерфейс (GUI) / Хранение указателей на объекты в закладках QTabWidget : Июль 06, 2011, 14:51
Подскажите пожалуйста, как хранить указатели в закладках QTabWidget, что бы я мог при нажатии на определенную вкладку извлечь из нее указатель на привязанный объект?
972  Qt / 2D и 3D графика / Scaling в QGraphicsView : Июнь 30, 2011, 17:16
Возника проблема с масштабированием. Из книги Бланшетт взял пример масштабирование при прокрутки колесика мыши
Код:
void            QEditorView::wheelEvent(QWheelEvent *event)
{
    qreal   numDegrees = event->delta()/8.0;
    qreal   numSteps = numDegrees/15.0;
    qreal   factor =  qPow(1.5,numSteps);
    if(factor>=.4 && factor<=2)
    {
        scale(factor,factor);
    }
    event->accept();
}
Все работает, но одна беда, после того как сделать масштабирование в большую, меньшую сторону - точность указателя мыши в координатах сцены начинает плавать, и она уже перемещается не с точностью до пиксела, а +- погрешность (0.3 или 1.5 к примеру пиксела).
Проблема видна после того, когда при увеличенном масштабе создаю, двигаю и изменяю объекты, при возвращении в исходный масштаб они выглядят кривовато.
На картинке это четко видно.
Сглаживание помогает, но на некоторых картах оно не работает, поэтому нужно что бы не было этих погрешностей. Как этого добиться?
973  Qt / Пользовательский интерфейс (GUI) / Re: Несколько колонок в списке с заголовком : Июнь 30, 2011, 14:11
ну потому что нужно динамически вставлять/удалять строки. ладно, буду использовать таблицу. просто думал есть встроенный механизм поддержки колонок в списках.
974  Qt / Пользовательский интерфейс (GUI) / Re: Несколько колонок в списке с заголовком : Июнь 30, 2011, 12:28
Неужели только таблица или tree поможет?
975  Qt / Пользовательский интерфейс (GUI) / Несколько колонок в списке с заголовком : Июнь 30, 2011, 11:41
Как создать несколько колонок в списке QListWidget (без ModeLView), мне нужно отображать:
1я колонка - время (текст)
2я колонка - сообщение(текст)
3я колонка - доп. инфо(текст).
+ в каждом заголовке вывести текст для каждой колонки.
Таблицу не предлагать.
Страниц: 1 ... 63 64 [65] 66 67 ... 69

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