10831
|
Qt / Общие вопросы / Re: Проблема трудоемких задач (прервать и продолжить)
|
: Декабрь 06, 2009, 21:31
|
дело ведь не в заполнении таблицы, а также в копировании, вставке, вырезать, сортировка- вариант с тремя кнопками обопщение
Значит во всех этих случаях надо использовать один прием, который я Вам покажу завтра (сейчас мне надо уходить) если буду иметь любую из Ваших долгих ф-ций.
|
|
|
10832
|
Qt / Общие вопросы / Re: Блокирование интерфейса
|
: Декабрь 06, 2009, 21:04
|
Закрыл окно и должен убратся процесс, поэтому и нужно остановить выполнение текущей задачи. Как узнать какая задача в текущий момент выполняется?
Выложите ф-цию, которая заполняет таблицу, я Вам добавлю что Вы хотите - нет уже сил отвечать на Ваши вопросы
|
|
|
10834
|
Qt / 2D и 3D графика / Re: OpenGL, многопоточность
|
: Декабрь 05, 2009, 21:10
|
Спасибо, ясно. А можно ли закрасить лучше (напр. написать шейдер который будет плавно интерполировать) для 4-х угольника? Какой алгоритм?
Можно сгенерировать текстуру с нужной интерполяцией на CPU, можно и с шейдерами поковыряться... давно находил демки, уроки с созданием процедурных текстур Понятно, вижу что такие задачи в Ваш круг интересов не входят. Это нормально, каждому свое
|
|
|
10835
|
Qt / 2D и 3D графика / Re: OpenGL, многопоточность
|
: Декабрь 05, 2009, 19:05
|
Не делал этого. Мысли были но не нашел что я буду с этого иметь. Экономию памяти в 2 раза по идее - например при реализации кабины автомобиля - лобового и бокового стекла - при рендере с расшаренными ресурсами вместо запуска 2-х копий рендера у которого все ресурсы будут свои и повторяющиеся... Для этого есть glCallLists - очень удачное решение если нужны различные виды одной сцены.
|
|
|
10836
|
Qt / 2D и 3D графика / Re: OpenGL, многопоточность
|
: Декабрь 05, 2009, 14:46
|
потому что получается на самом деле это два треугольника... рисуется через GL_TRIANGLE_STRIP и чистые цвета на углах этих самых двух треугольников, вот и получается градиент с зеленого на черный по длинным сторонам этих треугольников
Спасибо, ясно. А можно ли закрасить лучше (напр. написать шейдер который будет плавно интерполировать) для 4-х угольника? Какой алгоритм?
|
|
|
10837
|
Qt / 2D и 3D графика / Re: OpenGL, многопоточность
|
: Декабрь 05, 2009, 14:00
|
Это немного не в тему, но, по-моему, интересно. Вы дали в углах чистые цвета: red, green, blue, black - а почему раскрашено не симметрично, какая-то зеленая диагональ?
Я понимаю, OGL так делает, но почему?
Спасибо
|
|
|
10838
|
Qt / Пользовательский интерфейс (GUI) / Re: QTableWidget или QAbstractTableModel &QTableView
|
: Декабрь 04, 2009, 14:41
|
QList не подходит, лучше QVector. Как делать resize для вектора QVector<QVector<QVariant*>>, чтобы не делать ресайз каждой строки вектора в цикле?
Если надо вставить колонку (не строку) - то ресайз в цикле делать придется, какой бы контейнер Вы ни взяли (любой из Qt, любой из STL). Непонятно чем Вам не угодил удобный QList и какую задачу Вы решаете
|
|
|
10839
|
Qt / Общие вопросы / Re: Проблема с длл-ками
|
: Декабрь 04, 2009, 14:25
|
C++ (Qt) char *buf = new char[strlen(str)+9](); strcpy(buf,"Microsoft "); ...
"Microsoft " - это 10 символов а не 9. А про 0-терминатор забыли вообще. Так что очень может быть кучу Вы здесь покалечили. Делайте цивильно а не добавляйте 9 C++ (Qt) #define strMicr "Microsoft " char *buf = new char[strlen(strMicr) + strlen(str) + 1]; strcpy(buf, strMicr); strcat(buf, str);
Всем спасибо, разобрался Поставил в свойствах /MT и все))) Хммм... пока все
|
|
|
10840
|
Qt / Пользовательский интерфейс (GUI) / Re: QTableWidget или QAbstractTableModel &QTableView
|
: Декабрь 03, 2009, 22:10
|
Тогда список не подойдет как контейнер (как тогда узнать индекс) - лучше вектор (индекс ячейки оператор [])
QList - это тоже массив (не смущайтесь что list это "список") он имеет оператор [] так же как и QVector. Нет просто для индексации всей таблицы нужен вектор (ячейка может быть только в последней колонке, индекс []) Например 2 колонка 2 строка - [2][2], а если insert то индекс уже не будет такой (вектор изменяется под размер таблицы) Размер вектора может быть 2000*2000 и содержит всего один элемент [2][2] Возможно Вы хотите сказать что будете хранить вектор указателей из 2000*2000 элементов но только один элемент указывает на данные (остальные NULL). По поводу insert: да, когда Вы вставляете новую колонку - индексы изменятся, но ведь это нормально, так и должно быть. Если же Вы имеете ввиду что-то другое - поясните, лучше на примере.
|
|
|
10841
|
Qt / Общие вопросы / Re: Сигналы и массив
|
: Декабрь 03, 2009, 21:18
|
Сергей, мне кажется Вам надо выложить компилябельный упрощенный проект - а то обсуждение идет вхолостую
|
|
|
10843
|
Qt / Общие вопросы / Re: Сигналы и массив
|
: Декабрь 03, 2009, 20:47
|
Если б он был решён, я бы наверно пошёл на неделю в запой. Не решён он, load() у qwebview не выполняется несмотря на то, что метод лежит в классе gui, в схеме я указал где ERROR, говорит что потоки разные.
Правильно говорит. Ведь вы его создаете не в той нитке где gui. Вам надо: - отправить сигнал/событие от порожденной нитки к главной - получив его, главная нитка создает злополучный qwebview, т.е. это должно делаться при приеме, уже в главной нитке а не в посылателе
|
|
|
10844
|
Qt / Пользовательский интерфейс (GUI) / Re: Как сделать сигнал для класса,происходящего от QPlainTextEdit?
|
: Декабрь 03, 2009, 20:03
|
Когда консольная программа завершает работу,нужно узнать,активно ли окно терминала,и если да,то при нажатии любой клавиши закрыть терминал.Что в этом случае можно ещё использовать кроме сигналов?
C++ (Qt) void MainWindow::createConnections() { connect(interpreter, SIGNAL(readyReadStandardError()),this, SLOT(readErr())); connect(interpreter, SIGNAL(readyReadStandardOutput()),this, SLOT(readOut())); // садимся на finished connect(interpreter, SIGNAL(finished(int, QProcess::ExitCode)),this, SLOT(doneInter())); } void MainWindow::doneInter() { // уходим если до консоли дело не дошло if (terminal->isVisible()) QApplication::quit(); else terminal->mDoneFlag = true; } void QTerminal::keyPressEvent ( QKeyEvent * event ) { // уходим если нажат anyKey if (mDoneFlag) QApplication::quit(); }
|
|
|
10845
|
Qt / Пользовательский интерфейс (GUI) / Re: Как сделать сигнал для класса,происходящего от QPlainTextEdit?
|
: Декабрь 03, 2009, 18:51
|
Вот я что-то сделал,но неуверен,правильно ли,так как недопонимаю материал. Я переопределил этот метод,и теперь его можно сделать public и использовать connect за пределами реализации класса?
Есть ли Вас необходимость (или выгода) использовать сигнал/слот? Я лично не вижу здесь таковой. Ну и перекрывайте спокойно keyPressEvent как Spectre сказал. Пользоваться сигнал/слот никто не заставляет. А если хотите изучать - посвязывайте сначала готовые сигналы с готовыми слотами (они очень удобно расставлены). Имя QTerminal лучше заменить чтобы было ясно: это не Qt класс.
|
|
|
|
|