crossplatform.ru

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


Сейчас на сайте человек: 364
(пользователей: 0, гостей: 364)
Yandex.com, Yahoo.com, Google.com, Crawler.de, Baidu.com

Перейти к месяцу

Февраль 2017

  ПВСЧПСВ
»
1
2
3
4
»
6
7
8
10
12
»
13
14
17
19
»
20
21
23
24
25
26
»
27
28

> Последние обсуждения
Egor12 @ 26.2.2017, 9:15
Просмотров: 25   Комментариев: 0
 
> Qt QWebView не Переходит по url
Автор Egor12 — 26.2.2017, 9:15 — 0 комментариев
Доброго времени суток. Такая проблема пишу я свой браузер дошел до истории браузера. В QListWidget высвечивается история. При двойном щелчке должен происходить переход по ссылке из истории в QWebView но он просто игнорирует. Делаю так:
windowHistory - это и есть QListWidget.
подключаю слот:

QObject::connect(&windowHistory,SIGNAL(itemDoubleClicked(QListWidgetItem*)),SLOT(transition_li
nk(QListWidgetItem*)));

сам слот:

void History::transition_link(QListWidgetItem *iteem){
QUrl url = iteem->text();
WebView web;
web.load(url);
}

Что я делаю не так? Обьясните пожалуйста новичку.
Просмотров: 25, оставить комментарий   

> Вывод информации в консоль - qjsengine
Автор groigor — 25.2.2017, 17:14 — 1 комментариев
Когда выводишь в консоль к примеру командой: "print("hello world!");
Получается след. выхлоп:
"js: hello world!"

Вопрос как избавиться от приставки "js: " - сделать чистый вывод без этого информационного дополнения???? В qtscript такого не было....
Просмотров: 31, последний комментарий от groigor   

> QT Creator не опредиляет типы
Автор Snak2013 — 22.2.2017, 9:09 — 3 комментариев
Доброго времени суток, я подключил библиотеки типа *.tlb к QT Creator и попытался использовать типы из этих библиотек но Creator не определяет эти типы как типы при этом код успешно компилируется и даже работают методы их подключенных библиотек. Однако плагин ClangCodeModel ругается на эти типы сообщая что они неизвестны.
Библиотеки подключил так:
#import "C:\Program Files (x86)\ASCON\KOMPAS-3D V16\SDK\Lib\ksConstants3D.tlb" no_namespace named_guids
#import "C:\Program Files (x86)\ASCON\KOMPAS-3D V16\SDK\Lib\ksConstants.tlb" no_namespace named_guids
#import "C:\Program Files (x86)\ASCON\KOMPAS-3D V16\SDK\Lib\kAPI2D5COM.tlb"  no_namespace named_guids
#import "C:\Program Files (x86)\ASCON\KOMPAS-3D V16\SDK\Lib\kAPI3D5COM.tlb"  no_namespace named_guids
#import "C:\Program Files (x86)\ASCON\KOMPAS-3D V16\SDK\Lib\kAPI7.tlb"       no_namespace named_guids
#import "C:\Program Files (x86)\ASCON\KOMPAS-3D V16\SDK\Lib\kApi5.tlb"       no_namespace named_guids


Подскажите пожалуйста что я сделал не так и как заставить Creator нормально воспринимать типы из этих библиотек
Просмотров: 61, последний комментарий от lanz   

> плавающий баг вывода utf8 на stdout
Автор lrx2 — 17.2.2017, 15:04 — 10 комментариев
Qt Creator 3.2.2 основан на Qt 5.3.2, компилятор minGW 4.9.1
Первый cout печатает, второй - нет.
Если убрать system("chcp"), то печатает все (с крякозябрами).
В чем прикол?

#include <QCoreApplication>

#include <iostream>
using namespace std;

#include <stdio.h>
#include <Windows.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    system("chcp 65001");
    cout<<"cout 0: rus text : русский  текст"<<endl;
    cout<<"cout 1: after rus text\n";

    return a.exec();
}



Другой код:
#include <QCoreApplication>
#include <iostream>
using namespace std;
#include <Windows.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    cout<<"default console outputCP: "<<GetConsoleOutputCP()<<"\n";
    cout<<"default console CP: "<<GetConsoleCP()<<"\n";
    cout.flush();

    SetConsoleCP(CP_UTF8);
    SetConsoleOutputCP(CP_UTF8);

    cout<<"new console outputCP: "<<GetConsoleOutputCP()<<"\n";
    cout<<"new  console CP: "<<GetConsoleCP()<<"\n";
    cout.flush();

    cout<<" введите русский текст: ";
    char s[100];
    cin>>s;
    cout<<" вы ввели: ["<<s<<"]";
    cout.flush();

    return a.exec();
}

На одном компе (win 7) после ввода строки и нажатия enter просто переходит на новую строчку и все,
на другом (win 8, minGW 4.8.2 - больше нет отличий):


-----
Я где-то память порвал в этом коде?..
Подскажите нубу.
Спасибо.

Просмотров: 255, последний комментарий от lrx2   

> Вызов формы из DLL
Автор Snak2013 — 17.2.2017, 11:45 — 2 комментариев
Доброго времени суток, Пишу библиотеку в которой есть функция которая должна создать и отобразить форму QT. Функция выглядит так
int LoadWindow(int argc, char *argv[])
{
    QApplication a(argc, argv);
    TabletDialog* dislog = new TabletDialog();
    dislog->show();

    return a.exec();
}


Но код не компилируется выдается ошибка:

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

ошибка: LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall TabletDialog::TabletDialog(class QWidget *)" (??0TabletDialog@@QAE@PAVQWidget@@@Z) в функции "int __cdecl LoadWindow(int,char * * const)" (?LoadWindow@@YAHHQAPAD@Z)


Подскажите пожалуйста где я ошибся.
Просмотров: 109, последний комментарий от Гость_snak2013_*   

> компиляция QT Creator под Windows XP
Автор zazaqwark — 16.2.2017, 17:47 — 2 комментариев
На днях обнаружил, что откомпелированное на мной IDE QT Creator не работает под Windows XP, выдает:
точка входа в процедуру CancelIoEx не найдена в библиотеке DLL KERNEL32.

Можно ли как компилить под XP?
Просмотров: 110, последний комментарий от zazaqwark   

> Excel графики в Qt
Автор Гость_diadia_sid_* — 16.2.2017, 16:48 — 10 комментариев
Доброго времени суток.

Пишу программу для переноса данных из текстового файла в Excel. Возникла проблема с графиками. При создании нового графика создается новый лист. Как перенести график на основной лист с данными?

Код:

range = worksheet->querySubObject("Range(const QVariant&)", QVariant("A2:C200"));
range->dynamicCall("Select()");
//Создаем объект Charts (коллекция областей диаграмм)
QAxObject * charts = workbook->querySubObject("Charts");
//Добавляем новую область диаграмм
QAxObject * chart = charts->querySubObject("Add()");
//Устанавливаем имя области диаграмм
chart->dynamicCall("Name", "Name");
//Устанавливаем тип области диаграмм
chart->dynamicCall("ChartType", QVariant("xlLine"));
//Получаем доступ к текущему ряду области диаграмм
QAxObject * series = chart->querySubObject("SeriesCollection(const QVariant&)", QVariant(1));
//Устанавливаем имя ряда
series->dynamicCall("Name", "Name1");
//Получаем объект Range для оси X в виде QVariant
QVariant source = worksheet->dynamicCall("Range(const QVariant&)", QVariant("D2:D200"));
//Устанавливаем диапазон значаний X для ряда
series->dynamicCall( "XValues", source );
//Получаем объект Range для оси Y в виде QVariant
source = worksheet->dynamicCall("Range(const QVariant&)", QVariant("A2:A200"));
//Устанавливаем диапазон значаний Y для ряда
series->dynamicCall("Values", source);
series = chart->querySubObject("SeriesCollection(const QVariant&)", QVariant(2));
series->dynamicCall("Name", "Name2");
source = worksheet->dynamicCall("Range(const QVariant&)", QVariant("D2:D200"));
series->dynamicCall("XValues", source);
source = worksheet->dynamicCall( "Range(const QVariant&)", QVariant("B2:B200"));
series->dynamicCall("Values", source);
series = chart->querySubObject("SeriesCollection(const QVariant&)", QVariant(3));
series->dynamicCall("Name", "Name3");
source = worksheet->dynamicCall("Range(const QVariant&)", QVariant("D2:D200"));
series->dynamicCall("XValues", source);
source = worksheet->dynamicCall("Range(const QVariant&)", QVariant("C2:C200"));
series->dynamicCall("Values", source);

Просмотров: 226, последний комментарий от diadia_sid   

> Ошибка компилера или нет ?
Автор JohnZ — 14.2.2017, 14:57 — 6 комментариев
Есть созданный класс С++

class fpForma : public QDialog
{
    Q_OBJECT

public:

    Q_INVOKABLE fpForma(int id, MainWindow *parent = 0, Qt::WindowFlags f = 0);

public slots:

protected slots:

    void on_buttonPress();

private:

    fpTableModel       *model;    
    fpForma           *formChild;    // Форма редактирования записи
};


... и есть в этом классе ф-ция, где пишем ...

bool fpForma::init()
{
      ........................................

        formChild = new fpForma(item, Parent);       // "Рекурсивный" вызов !!!

        if (!isFlags->testBit(isExtModel))              // Модель не внешняя
        {
           ........................................
            formChild->model = model;        // Установка Модели из вне ...   ?????????????
        }

      ........................................


По идее компилер должен был-бы ругнуться на доступ к private, а вотЪ не ругается !!!

пАчЭму ???

(Raspberry Pi 2, Debian)
Просмотров: 212, последний комментарий от JohnZ   

> Экспортные функции в библиотеке на QT
Автор Snak2013 — 13.2.2017, 9:06 — 5 комментариев
Доброго времени суток, Для проекта хочу использовать библиотеку DLL написанную на QT. Функции в библиотеки я объявил следующим образом

extern "C" __declspec( dllexport ) int __stdcall InitUserDLLCom(void * value);
extern "C" __declspec( dllexport ) bool __stdcall PgiCheckMenuItemCom(char const * stFunction, IPluginCall * IPC);


После компиляции библиотеки я открыл ее с помощью утилиты "depends" чтобы посмотреть названия экспортных функций, и они оказались изменены. В Visual С++ это решалось бы с помощью .def файла но я не нашел как его подключить в проект на qt. Подскажите пожалуйста как правильно написать экспортные функции чтобы их названия не искажались.
Просмотров: 215, последний комментарий от Snak2013   

> QUdpSocket не принимает пакеты на windows
Автор elfenlied — 11.2.2017, 16:02 — 0 комментариев
groupAddress = QHostAddress(/*"192.168.0.102"*/"239.255.43.21");

    statusLabel = new QLabel(tr("Listening for multicasted messages"));
    quitButton = new QPushButton(tr("&Quit"));

    udpSocket = new QUdpSocket(this);
    udpSocket->bind(QHostAddress::AnyIPv4, 45455, QUdpSocket::ShareAddress);
    udpSocket->joinMulticastGroup(groupAddress);

    connect(udpSocket, SIGNAL(readyRead()),
            this, SLOT(processPendingDatagrams()));
    connect(quitButton, SIGNAL(clicked()), this, SLOT(close()));

Собственно код из простенького примера http://doc.qt.io/qt-5/qtnetwork-multicastr...er-example.html На linux все работает но на windows 10 (других еще не проверял) не хочет принимать пакеты. Точнее если я соеденяюсь с 192.168.0.102 ну внутренним ip компа то работает, но мне нужен левый ip (напр 239.255.43.21 как в примере) чтобы каждое устройство android из сети wifi могло подсоедениться к серверу не зная ip сервера. Не пойму что не так, на линукс все работает Короче не проходите пожалуйста мимо если что то знаете.
Просмотров: 171, оставить комментарий   

> парсинг простого текста
Автор ht1515 — 9.2.2017, 14:22 — 1 комментариев
Есть бб коде [f] ttt [/f] [f] yyy [/f]
Как такое распарсить и вытащить текст внутри тегов? Чет по рекспам в куте справка тухлая. Разобраться не смог.
Просмотров: 232, последний комментарий от Litkevich Yuriy   

> QDataWidgetMapper->submit()
Автор JohnZ — 9.2.2017, 12:09 — 5 комментариев
Всем Здравия !

Помогите разобраться с проблемой ... Снега полно, а лыжи не едут :-)

        ......
    case Qt::Key_Insert:
            if (formChild)
            {
                event->accept();
                if (formChild->exec() == QDialog::Accepted)
               {
                               formChild->mapDynaProperty();         // Динамическое связывание полей формы с моделью
                               formChild->dataMapper->submit();    // По-идее Передача значений из формы в модель
                               curRecord = model->record();        // получает пустую запись !!! ???
                               model->insertRecord (-1, curRecord);
                               model->submitAll();                // <---- QSqlTableModel
                         }
                              ..............
                    }


Гугль выдал похожее решение в т.ч. правда без "динамики" ...
Была похожая тема, даже я её открывал, но как оказалось не решена окончательно , и ещё
есть какая-то "магическая" зависимость от того, есть в записи автоинкрементное поле или нет.

Кусок кода ниже из примера sqlbrowser, тоже не работает при наличии автоинкрементного поля в записи ...
                  QModelIndex insertIndex = viewChild->currentIndex();      // viewChild это QTableView
                  int row = insertIndex.row() == -1 ? 0 : insertIndex.row();
                  model->insertRow(row);
                  insertIndex = model->index(row, 0);  // <--- выдаёт INVALID-ный индекс
                  viewChild->setCurrentIndex(insertIndex);    // viewChild это QTableView
                  viewChild->edit(insertIndex);

На счёт автоинкрементного поля, - это пока предположение, проверяю ...
Может ну его этот dataMapper, и записывать значения в запись вручную, вместо дин-го связывания ?
Просмотров: 258, последний комментарий от Litkevich Yuriy   

> отображение иконки на Android
Автор Алексей1153 — 8.2.2017, 15:01 — 3 комментариев
имеется некоторое приложение на Qt , собираю креатором под андроид (установлены JDK/SDK/NDK и много других страшных слов! ), то есть на выходе имеем пакет APK

Дальше сама проблема - если пакет закинуть на планшет с андроидом, пакет виден, ставится и программа работает. Но у файла пакета на планшете нет иконки (то есть у самого файла APK), кроме того нет иконки и установленного приложения. Точнее, иконка заменена зелёным изображением ведроида.

Я искал в гугле, как это починить, нашёл, как настраивать манифест - в креаторе даже визуальный редактор имеется. Все иконки указал, креатор поместил их в соответствующие разрешениям папки "res/drawable-*" - всё как гугл рассказывает

Однако на планшете иконки не видны (вернее - заменены зелёным дефолтным роботом) - хоть ты тресни!

Что ещё проверить и где ?
Просмотров: 216, последний комментарий от Алексей1153   

> QTreeView и его дети как бы такое реализовать
Автор ViGOur — 1.2.2017, 13:51 — 8 комментариев
Есть такие классы:
class CItem{};
class CItems : public std::vector<CItem*> {};

class CStorage
{
    CItems m_items;
};

class CStorages : public std::vector<CStorage*> {};
Пока думал сделать топорно, что-то вроде:
Storage 0
    - item 0
    - item 1
Storage 1
    - item 0
Storage 2
    - item 0
    - item 1
    - item 2
Ну и у Storage используются свои стобцы, у item - свои
Понятно, что создается модель с CStorages *m_pStorages;, в которой те итемы, которые без parent будут CStorage, а те, которые с parent CItem.
Но вот как это изобразить в модели? Классы разные, как быть в таком случае с создаваемыми элементами модели?

Указатель на m_pStorages будет передоваться в модель при создании, так как этот массив может меняться и изменяться в процессе работы это так же нужно учитывать и при создании модели.

Нужны идеи или подсказка как это сделать!
Просмотров: 404, последний комментарий от ViGOur   

> Перехват падения программы на Qt
Автор Litkevich Yuriy — 31.1.2017, 12:27 — 11 комментариев
Тестю возможность перехватить падение программы (использующей Qt).

обычно функция main выглядит так:
...

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    
    MainWindow mainWin;
    mainWin.show();

    return app.exec();
}

Я сделал так:
...

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    
    MainWindow mainWin;
    mainWin.show();

    int ret = 0;

    try {
        ret = app.exec();
    } catch (...) {
        ret = -1;
        qDebug() << "Crush";
    }

    return ret;
}
Сделал в программе кнопку "Упасть", которая обеспечивает обращение к контейнеру по не существующему индексу.

Программа по нажатию на эту кнопочку честно падает - вин7 говорит, что программа упала и предлагает закрыть.
Но моя отладочная печать не печатается, код возврата при этом почему-то равен "3".

Может кто-нибудь направить меня в русло истины?
Просмотров: 470, последний комментарий от lanz   

RSS Текстовая версия Сейчас: 27.2.2017, 0:44