crossplatform.ru

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

История благодарностей участнику igor_bogomolov ::: Спасибо сказали: 235 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
17.1.2011, 22:36 список файлов QNetworkAccessManager jim1406,
16.1.2011, 19:58 Использование русской кодировки в QML-файлах для проекта на C++
Алексей, судя по кодировке вы делаете это под Windows. Попробуйте сделать следующее:
1. Откройте файл MainWindow.qml в qtcreator что бы была возможность редактировать в виде текста
2. Переходим в меню "Правка"->"Выбор кодировки". Принудительно выставляем Utf8
3. Далее стираем русский текст и пишем его заново без всяких qsTr. Теперь qml файл у нас полностью в utf8
4. Компилируем, запускает.

У меня после этого русский текст отобразился правильно. Т.е. отсюда вывод: qml файл должен быть в кодировк utf8
Strikevld, Алексей,
13.1.2011, 20:50 [РЕШЕНО] Закрытие программы при закрытии "дочернего окна"
Цитата
quitOnLastWindowClosed : bool
This property holds whether the application implicitly quits when the last window is closed.
The default is true.
If this property is true, the applications quits when the last visible primary window (i.e. window with no parent) with the Qt::WA_QuitOnClose attribute set is closed. By default this attribute is set for all widgets except for sub-windows. Refer to Qt::WindowType for a detailed list of Qt::Window objects.
Access functions:
bool quitOnLastWindowClosed ()
void setQuitOnLastWindowClosed ( bool quit )
See also quit() and QWidget::close().
greh,
13.1.2011, 17:40 Работа с zip архивами в Qt
Написал небольшую заметку в wiki по работе с zip архивами в Qt.

Цитата
В Qt есть не документированные классы для работы с zip архивами. Эти классы позволяют распаковывать уже существующие архивы по заданному пути, так и создавать новые архивы. Для создания используется класс QZipWriter, для распаковки QZipReader. Реализация этих классов находятся по следующему пути qt/src/gui/text в файлах qzipreader_p.h, qzipwriter_p.h и qzip.cpp.


Продолжение здесь...
arial, DOGG, kwisp, RazrFalcon, Rocky, vankleef, Алексей1153,
3.1.2011, 19:32 [Qt Plugins] Не подгружается плагин, прошу помощи.
Алексей1153, отдельного описания наверное нет, он имеет тот же синтаксис, что и файл проекта (.pro)
Просто с .pri файл часто выносят какие то общие настройки, а подключается он в .pro файле директивой include.
В твоём случае, на мой взгляд, было бы удобно сделать .pri файл для подключения твоего виджета в любой проект
Содержание примерно следущее
INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD
HEADERS += mywidget.h
SOURCES += mywidget.cpp
Алексей1153,
26.12.2010, 16:12 QTableView наследование
Цитата(TaIRou @ 26.12.2010, 16:07) *
Проблема: при наследовании от QTableView механизмов доступа к cornerWidget я не знаю.
Да их и нет к сожалению.
Загляни вот в эту тему (ссылка), может поможет сделать костыль
TaIRou,
21.12.2010, 2:10 Не удаляется элемент из QListWidget
Andrewshkovskii, о каких родных методах вы говорите? Я таких методов не знаю. Единственный такой метод, это тот что я привёл выше, т.е. takeItem. Но он удаляет итем из модели, не удаляя сам итем. Поэтому приходится его удалять ручками.

Если же нужно удалить именно выделенные элементы, то лучше делать так как написали во втором примере
qDeleteAll(ui->parametersList->selectedItems());

removeItemWidget делает совсем не то. Он удаляет виджет установленный для итема.
Andrewshkovskii,
19.12.2010, 18:37 Нет доступа к функции класса из скриптов
Ну, во первых, void setWindowTitle(const QString &title);. Иначе вы скрываете уже существующую функцию. И доступ до неё из скриптов должен быть по умолчанию, т.к. это слот.

Попробуйте так,
class MyDialog : public QDialog {
    Q_OBJECT
    Q_PROPERTY(QString windowTitle READ windowTitle WRITE setWindowTitle SCRIPTABLE true)
public:
    explicit MyDialog(QWidget *parent = 0);
    QString windowTitle() { return QDialog::windowTitle(); }
};



---Добавлено ---
Вы уверены, что вы всё правильно делаете. Сделал сейчас тестовое приложение
    QScriptEngine *engine = new QScriptEngine(this);
    QDialog *w= new QDialog(this);

    QScriptValue scriptDialog = engine->newQObject(w);
    engine->globalObject().setProperty("dialog", scriptDialog);

    engine->evaluate("dialog.windowTitle = \"Title\"");

    qDebug() << scriptDialog.property("windowTitle").toString(); // -> "Title"
    scriptDialog.property("show").call();

Доступ до windowTitle есть, всё нормально работает
mva,
18.12.2010, 13:57 С днем рождения, AD!
С днём рождения!
AD,
17.12.2010, 16:16 Восстановление загрузчика Linux
Цитата(mezmay @ 17.12.2010, 15:55) *
ну можно и так, что ставить?
Не нужно ничего ставить, нужно восстановить. По моему с этим сталкивался каждый пользователь Linux. И тебе придётся через это пройти. :)
Поиск в google по фразе "восстановление загрузчика linux" даст тебе кучу мануалов :)
mezmay,
12.12.2010, 14:56 Как установить иконку программе, чтобы она отображалась в проводнике windows?
Прежде чем создать тему, пользуйтесь поиском, много раз уже обсуждалось
http://doc.crossplatform.ru/qt/4.6.x/appic...icon-on-windows
Rocky,
6.12.2010, 19:06 Движение стрелок в часах
ui->graphicsViewdet->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
Snikersoman,
5.12.2010, 23:42 CrossPlatform-Wiki
Переработан раздел Ruby.
Присоединяйтесь к развитию :)
Litkevich Yuriy,
4.12.2010, 21:22 Phonon открытие видеофайла
Смотрите внимательнее документацию, play не может принимать const char*, а во вторых нужно указывать полный путь до файла.
Сделайте так и будет счастье
player->play(QApplication::applicationDirPath() + QDir::separator() + QLatin1String("1.avi"));
Snikersoman,
3.12.2010, 11:37 Столкновение двух объектов
Есть замечательная книга М.Мозговой - Занимательное программирование. , там как раз первые несколько примеров подробно описывают твою задачу. Единственное код на паскале, но каждая строчка подробно разжевана.
vankleef,
3.12.2010, 0:10 Delegate 2 - HtmlDelegate
фильтр нужно устанавливать для viewport заголовка

m_table_view->horizontalHeader()->viewport()->installEventFilter(this);
Obey-Kun,
2.12.2010, 1:12 Движение стрелок в часах
Какой кошмар. Как вы вообще такое выдумали (без обид) :)
Делайте всё через графическую сцену. Никаких QPainter там в принципе быть не должно. У графических элементов достаточно готовых функций для любых трансформаций.

Примерно так должно быть
QGraphicsScene *scene = new QGraphicsScene;
QPixmap img(":/images/1.PNG");
QGraphicsPixmapItem * p = scene->addPixmap(img);
p->setRotation(90);
ui->graphicsView->setScene(scene);


Что касается реализации часов, готовых примеров при достаточно. Поищи на qt-apps.org
Или тут (ссылка) есть нечто похожее, сделанное при момощи svg графики.
А ещё для этой задачи неплохо подходит qml (ну это так, для развития)
Snikersoman,
1.12.2010, 10:34 Delegate 2 - HtmlDelegate
Цитата(Obey-Kun @ 1.12.2010, 6:49) *
А аналогично QHeaderView модешь переделать?
Если упрощенно, то так.
Раскрывающийся текст
void Header::paintEvent(QPaintEvent *e)
{
    if (!count()) return;

    QPainter painter(viewport());
    QRect currentSectionRect;
    const int height = viewport()->height();
    for (int i = 0; i != model()->columnCount(); ++i) {
        painter.save();
        currentSectionRect.setRect(sectionViewportPosition(i), 0, sectionSize(i), height);

        QStyleOptionHeader opt;
        initStyleOption(&opt);

        opt.rect = currentSectionRect;
        opt.section = i;
        style()->drawControl(QStyle::CE_HeaderSection, &opt, &painter, this);


        QString str = model()->headerData(i, Qt::Horizontal, Qt::DisplayRole).toString();

        QTextDocument td;
        td.setHtml(str);
        QRectF lr = layoutRect(td, currentSectionRect);
        painter.translate(lr.topLeft());
        painter.setClipRect(lr.translated(-lr.x(), -lr.y()));
        td.drawContents(&painter, QRectF());

        painter.restore();
    }
}
[attachment=1251:2.jpeg]
Если нужен больший функционал от заголовков, смотри в исходники QHeaderView
Obey-Kun,
25.11.2010, 9:35 Выделение области экрана
Цитата(Алексей1153 @ 25.11.2010, 8:15) *
Если он полностью прозрачный, то сообщения мыши он не получит.
Это почему? Как связана прозрачность (альфа канал) с событиями Qt?
Цитата(Алексей1153 @ 25.11.2010, 8:15) *
но все нижлежащие виджеты сообщений не получат
так нет никаких низлежащих виджетов.

ernie, делайте как подсказал ufna. Да и за примерами далеко ходить не надо, посмотрите как работает тот же KSnaphot, там всё в точности как вы хотите
ernie,
19.11.2010, 15:43 Qt4 работа с 3d моделями
Ты не правильно путь до директории задал.
Цитата
"/i:/qt/lib3ds-1.3.0/lib3ds/lib/lib"
В MSYS используется нотация UNIX
/i/qt/lib3ds-1.3.0/lib3ds/lib/lib
т.е. без двоеточия

пересобери еще раз с правильными путями
В остальном всё нормально. Дальше надеюсь тоже проблем не возникнет
Snikersoman,
19.11.2010, 11:02 Сообщить об ошибке в переводе
В http://doc.crossplatform.ru/qt/4.7.x/properties.html

Цитата
Она для установки в обратно свойство обратно в своё конекстно-зависимое значение по умолчанию.
Да и само предложение так и не распарсил :)

Там же
Цитата
Оно основано на мета-объектной системе, которая предоставляет также межобъектную связь посредством сигналов и слотов.
Может лучше будет
"которая предоставляет связь между объектами посредством сигналов и слотов."


alex977, Litkevich Yuriy,
19.11.2010, 2:05 Qt4 работа с 3d моделями
Скачиваешь и устанавливаешь MSYS.
Распаковываешь lib3ds-1.3.0

читаем тут
качаем пропатчиную версию этой библиотеки (ссылка на той же странице внизу) и заимствуем из файлов lib3ds/file.h lib3ds/file.с следующую функцию (т.е. копируешь их и вставляешь в оригинальные файлы)

extern LIB3DSAPI void lib3ds_file_bounding_box(Lib3dsFile *file, Lib3dsVector min, Lib3dsVector max);

Раскрывающийся текст
void
lib3ds_file_bounding_box(Lib3dsFile *file, Lib3dsVector min, Lib3dsVector max)
{
  Lib3dsBool init=LIB3DS_FALSE;

  {
    Lib3dsVector lmin, lmax;
    Lib3dsMesh *p=file->meshes;

    if (!init && p) {
      init = LIB3DS_TRUE;
      lib3ds_mesh_bounding_box(p, min, max);
      p = p->next;  
    }
    while (p) {
      lib3ds_mesh_bounding_box(p, lmin, lmax);
      lib3ds_vector_min(min, lmin);
      lib3ds_vector_max(max, lmax);
      p=p->next;
    }
  }
  {
    Lib3dsCamera *p=file->cameras;
    if (!init && p) {
      init = LIB3DS_TRUE;
      lib3ds_vector_copy(min, p->position);
      lib3ds_vector_copy(max, p->position);
    }

    while (p) {
      lib3ds_vector_min(min, p->position);
      lib3ds_vector_max(max, p->position);
      lib3ds_vector_min(min, p->target);
      lib3ds_vector_max(max, p->target);
      p=p->next;
    }
  }
  {
    Lib3dsLight *p=file->lights;
    if (!init && p) {
      init = LIB3DS_TRUE;
      lib3ds_vector_copy(min, p->position);
      lib3ds_vector_copy(max, p->position);
    }

    while (p) {
      lib3ds_vector_min(min, p->position);
      lib3ds_vector_max(max, p->position);
      if (p->spot_light) {
        lib3ds_vector_min(min, p->spot);
        lib3ds_vector_max(max, p->spot);
      }
      p=p->next;
    }
  }
}


Запускаешь MSYS, переходишь в директорию lib3ds-1.3.0
./configure --prefix=/path_to_lib3ds/lib 
make
make install


теперь у тебя в /path_to_lib3ds/lib находится все чтобы подцепить эту библиотеку

Далее скачиваешь libQGLViewer-2.3.8.zip.
Распаковываешь

Открываешь libQGLViewer-2.3.8.pro, правишь его

CONFIG       += ordered
TEMPLATE      = subdirs
SUBDIRS       = QGLViewer


Открываем обычную консоль, переходим в libQGLViewer-2.3.8, собираем по инструкции
qmake
mingw32-make


Переходим в этой же консоли в каталог с твоим примером.

Открываем pro файл
Находим строку
# win32:LIBS *= C:\code\lib\lib3ds.lib
Меняем на (исправляя путь на свой)
win32:LIBS  = d:\Work\lib3ds-1.3.0\lib\lib\lib3ds.a

находим и удаляем
win32 {
  RC_FILE = ../../qglviewer.rc
}


добавляем в 3dsViewer.cpp
#include <QKeyEvent>
#include <lib3ds/file.h>


на этом всё (наконец то, блин), компилируем и радуемся жизни :)

P.S не забываем QGLViewerd2.dll рядом с экзешником положить
Snikersoman,
18.11.2010, 15:01 Qt4 работа с 3d моделями
Вот же написано
Цитата(Snikersoman @ 18.11.2010, 14:47) *
i:/qt/2010.05/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -l3ds
т.е. не удалось найти библиотеку lib3ds.dll
Snikersoman,
18.11.2010, 13:13 Common gui components
Цитата(wiz29 @ 18.11.2010, 11:24) *
Вот хочу спросить где можно "порыться", и нет ли возможности создать некую общую базу таких компонент как то централизовано, куда можно былобы выкладывать готовые компонеты тем , кому нежалко своего труда
Основной ресурс на который выкладывают свои поделки на Qt http://qt-apps.org/
ну и еще один http://kde-apps.org/

Цитата(wiz29 @ 18.11.2010, 11:24) *
Нигде ничего нагуглить не удалось.
В qt-embedded-widget-demos есть QtMultiSlider, можно там попробовать подсмотреть реализацию.
wiz29,
15.11.2010, 23:45 ZOrder
void QWidget::raise ()   [slot]
void QWidget::lower ()   [slot]
Алексей1153,

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