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

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3 4 ... 6   Вниз
  Печать  
Автор Тема: JS в приложении на Qt/Ком порты/ и прочие глупые вопросы  (Прочитано 34747 раз)
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #15 : Август 19, 2020, 01:28 »

Цитировать
Constructors exposed to the meta-object system (using Q_INVOKABLE) can be called from the script to create a new QObject instance with JavaScriptOwnership. For example, given the following class definition:
Это относится к myEngine.newObject

а myEngine.newQObject экспортирует класс Qt и у него нет Q_INVOKABLE
Код:
class Q_WIDGETS_EXPORT QCheckBox : public QAbstractButton
{
    Q_OBJECT

    Q_PROPERTY(bool tristate READ isTristate WRITE setTristate)

public:
    explicit QCheckBox(QWidget *parent = nullptr);
    explicit QCheckBox(const QString &text, QWidget *parent = nullptr);
    ~QCheckBox();

    QSize sizeHint() const override;
    QSize minimumSizeHint() const override;

    void setTristate(bool y = true);
    bool isTristate() const;

    Qt::CheckState checkState() const;
    void setCheckState(Qt::CheckState state);

Q_SIGNALS:
    void stateChanged(int);

protected:
    bool event(QEvent *e) override;
    bool hitButton(const QPoint &pos) const override;
    void checkStateSet() override;
    void nextCheckState() override;
    void paintEvent(QPaintEvent *) override;
    void mouseMoveEvent(QMouseEvent *) override;
    void initStyleOption(QStyleOptionButton *option) const;


private:
    Q_DECLARE_PRIVATE(QCheckBox)
    Q_DISABLE_COPY(QCheckBox)
    friend class QAccessibleButton;
};

и вообще я слепой ине вижу каким образом вообще работает "obj.checked" ? НепонимающийНепонимающийНепонимающий?? нет оно конечно работает но как что импортирет ? каким макаром Непонимающий я вообще в объявлении не вижу такой возможности ... я и попредкам прошёл... итам тоже пусто ... ОБЪЯСНИТЕ МНЕ ЛОГИКУ ... пока есть ощущение черно йшкатулки с фычами
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #16 : Август 19, 2020, 08:30 »

Не забывай про c++ - QCheckBox наследуется от QAbstractButton, который и имеет это свойство.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #17 : Август 20, 2020, 03:05 »

Мой моск сожжен ... Check наследуюется от Button ....

Мой моск ломается чуствую пока я буду входить в Qt меня ждет исчё масса таких сюйпризов...

так а почему тогда вот этот вариант :
Цитировать
ui->checkBox->checked=true;
вызывает ошибку :
Цитировать
D:\Faster\Documents\Qt\UniPort\Src\mainwindow.cpp:41: ошибка: 'class QCheckBox' has no member named 'checked'; did you mean 'clicked'?
     ui->checkBox->checked=true;
                   ^~~~~~~
                   clicked

в недоумении ?


и исчё вопрос , получил я EXE фал выбрав Relise  и рпи запуске он требует пачку DLL от qt для работ ы...

вопросы :
1- их нужо тоскать с приложением в той же папке ?
2- нужно ставить чтототипа рунтайм компонентов ?
3- можно ли сбилдить экзешник не тркбующий ничего кроме себя на другой машине ? (жестко слинковать либы в экзешник) Непонимающий
« Последнее редактирование: Август 20, 2020, 03:17 от Faster » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #18 : Август 20, 2020, 07:39 »

Код
C++ (Qt)
ui->checkBox->setChecked(true);
 

По поводу dll - ты можешь собрать все статически, но тогда ты либо должен будешь купить Qt, либо распространять свою программку под GPL. Но проще их с exe таскать, есть windeploy утилита, которая соберет тебе все, что нужно. Упаковываешь это в инсталлятор и устанавливаешь где надо.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #19 : Август 20, 2020, 08:14 »

Цитировать
Код:
ui->checkBox->setChecked(true);
Вот ..теперь я перезадаю свой вопрос , с какого хрена я должен при объявленном property делать вызов его функции Непонимающий??
я понимаю что это работает , но тогда на кой Х...н нужны проперти ?

У мнея полное не понимание логики в данном направлении  вроде все тоже чтои в VC /Builder но работает не так ... я немогу понять ... для чего тогда они вообще тут ?

Цитировать
По поводу dll - ты можешь собрать все статически, но тогда ты либо должен будешь купить Qt, либо распространять свою программку под GPL
Ахаха ... вот как всегда ну нет ничегобесплатного ... в этом мире ...

в общем то меня GPL утсраивает  я еслине на заказ то пишу для всех если кому надо ... темболее втом чтоделаю сейчас продажа даже не предпологается ... как это провернуть ?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #20 : Август 20, 2020, 11:32 »

В c++ нет пропертей, то, что у тебя было в билдере, тут не прокатит - это были их надстройки. Вообще, советую забыть про билдер и начать с чистого листа. Q_PROPERTY или Q_INVOKABLE это уже мета надстройка, она будет работать в js коде как ты хочешь, но в плюсовом у тебя так и останется геттер и сеттер.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #21 : Август 20, 2020, 11:33 »

По поводу статической сборки гугл тебе в помощь, тема множество раз поднималась. Но я бы советовал все таки использовать windeploy и таскать либы с собой.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #22 : Август 21, 2020, 06:27 »

Цитировать
Но я бы советовал все таки использовать windeploy и таскать либы с собой.
Хорошо я сделаю так как рекомендуешь , ибо яйца тирекса не учат Улыбающийся

Цитировать
Вообще, советую забыть про билдер и начать с чистого листа.
Не, не выйдет пока тут не начну плавать ... а пока как муха в невесомости , вроде все понятно но нехрена не так ...

пок аразираюсь с библиотеками и плагинами ... вроде всё прет ... QJSEngine запустил всё пашет ... уже продумываю скилет софтины ... в общем пок анет вопросов .. но я вернусь Улыбающийся
Записан
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #23 : Август 21, 2020, 07:05 »

В общем  попробовал я разобратьтся с windeploy  она натащила тонну всякой хрени и в итоге все равно не все собрала требует теперь при запуске куски от g++ их то как и откуда добывать ?

в общем вопрос открыт есть ли нормальное решение данной рпоблемы, заставить саму среду можно заставить линкануть ?

я сильно разочарован этобазовая функция и должна включаться по галочке ...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #24 : Август 21, 2020, 10:00 »

Можешь предоставить больше конкретики?
1. Какой компилятор используешь (mingw как я понял?)
2. Какие файлы тебе windeploy собрал
3. Какую ошибку ты получаешь при запуске на другом компьютере?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #25 : Август 21, 2020, 11:57 »

Цитировать
я сильно разочарован этобазовая функция и должна включаться по галочке

Никому никто ничего не должен, это опенсорс. Тут тебе не галочкотыканье!  Смеющийся
Записан

ArchLinux x86_64 / Win10 64 bit
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #26 : Август 24, 2020, 08:11 »

Можешь предоставить больше конкретики?
1. Какой компилятор используешь (mingw как я понял?)
2. Какие файлы тебе windeploy собрал
3. Какую ошибку ты получаешь при запуске на другом компьютере?
1- да
2- :
Код:
21.08.2020  14:00    <DIR>          bearer
11.03.2014  20:54         4 173 928 D3Dcompiler_47.dll
21.08.2020  14:00    <DIR>          iconengines
21.08.2020  14:00    <DIR>          imageformats
12.05.2020  01:46            67 688 libEGL.dll
12.05.2020  01:46         6 297 408 libGLESv2.dll
20.08.2020  10:13             1 324 main.o
21.08.2020  13:29            13 210 mainwindow.o
20.08.2020  10:13             3 587 moc_mainwindow.cpp
20.08.2020  10:13             9 593 moc_mainwindow.o
20.08.2020  10:13            14 583 moc_predefs.h
14.06.2016  22:00        20 923 392 opengl32sw.dll
21.08.2020  14:00    <DIR>          platforms
12.05.2020  01:46         8 174 864 Qt5Core.dll
12.05.2020  01:46         9 684 704 Qt5Gui.dll
12.05.2020  01:46         2 692 000 Qt5Network.dll
12.05.2020  02:25         7 365 952 Qt5Qml.dll
12.05.2020  01:54           573 688 Qt5Svg.dll
12.05.2020  01:46         8 655 264 Qt5Widgets.dll
21.08.2020  13:49               231 settings.ini
21.08.2020  14:00    <DIR>          styles
21.08.2020  14:00    <DIR>          translations
21.08.2020  13:29            32 768 UniPort.exe

ну сишные артефакты понятно в топку они и при экзешнике были

вывод windeployqt:
Код:
D:\Faster\Documents\Qt\UniPort\Output\release>C:\Qt\5.15.0\mingw81_64\bin\windeployqt.exe uniport.exe
D:\Faster\Documents\Qt\UniPort\Output\release\uniport.exe 64 bit, release executable [QML]
Adding Qt5Svg for qsvgicon.dll
Direct dependencies: Qt5Core Qt5Qml Qt5Widgets
All dependencies   : Qt5Core Qt5Gui Qt5Network Qt5Qml Qt5Widgets
To be deployed     : Qt5Core Qt5Gui Qt5Network Qt5Qml Qt5Svg Qt5Widgets
Warning: Cannot find GCC installation directory. g++.exe must be in the path.
Qt5Core.dll is up to date.
Qt5Gui.dll is up to date.
Qt5Network.dll is up to date.
Qt5Qml.dll is up to date.
Qt5Svg.dll is up to date.
Qt5Widgets.dll is up to date.
libGLESv2.dll is up to date.
libEGL.dll is up to date.
D3Dcompiler_47.dll is up to date.
opengl32sw.dll is up to date.
qgenericbearer.dll is up to date.
qsvgicon.dll is up to date.
qgif.dll is up to date.
qicns.dll is up to date.
qico.dll is up to date.
qjpeg.dll is up to date.
qsvg.dll is up to date.
qtga.dll is up to date.
qtiff.dll is up to date.
qwbmp.dll is up to date.
qwebp.dll is up to date.
qwindows.dll is up to date.
qwindowsvistastyle.dll is up to date.
Creating qt_ar.qm...
Creating qt_bg.qm...
Creating qt_ca.qm...
Creating qt_cs.qm...
Creating qt_da.qm...
Creating qt_de.qm...
Creating qt_en.qm...
Creating qt_es.qm...
Creating qt_fi.qm...
Creating qt_fr.qm...
Creating qt_gd.qm...
Creating qt_he.qm...
Creating qt_hu.qm...
Creating qt_it.qm...
Creating qt_ja.qm...
Creating qt_ko.qm...
Creating qt_lv.qm...
Creating qt_pl.qm...
Creating qt_ru.qm...
Creating qt_sk.qm...
Creating qt_uk.qm...
Creating qt_zh_TW.qm...

Вот тут указана основная печалька :
Код:
Warning: Cannot find GCC installation directory. g++.exe must be in the path.

3- в скринах

kuzulis
Цитировать
Никому никто ничего не должен, это опенсорс. Тут тебе не галочкотыканье!  Смеющийся
Спасибо . ваш ответбыл черезвычайно полезен ... он дал ответы на все мои вопросы. я вам очень благодарен...

Записан
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #27 : Август 24, 2020, 08:16 »

В общем судя по всему не хватает библиотечк от GCC и скомпиленной стандартной либы , теперь понять бы как заставить windeploy собирать это все в кучу ...
в принципе я могу через PS собрать все это потом в один exe хотя в принципе наплевать на папки и прочее лижбы работало ...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #28 : Август 24, 2020, 08:34 »

Путь к твоему gcc добавь в PATH перед запуском windeploy, он же просто не может найти gcc'шные библиотеки.
Тебе даже черным по белому намекнули
Цитировать
g++.exe must be in the path
« Последнее редактирование: Август 24, 2020, 08:36 от Пантер » Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #29 : Август 24, 2020, 08:38 »

АХАХА зашел чтобы написать об этом пока писал первый ответ посетила мысль . решил проверить ...

я вообще эксперементировал с ключем -dir но это не давало эфекта , в общем решение такое в глобальный PATH сунул пути ко всем бинам 32/64 компелятора , так же lib

и все вроде как прошло ... счас потестим на чистой тачке ...

Пантер спасибо ... пока вопросы иссякли ... счас буду разбераться с компортами и вопросом как егомегабита на 2 открыть Улыбающийся
Записан
Страниц: 1 [2] 3 4 ... 6   Вверх
  Печать  
 
Перейти в:  


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