Code Monkey home page Code Monkey logo

scriptcommunicator_serial-terminal's Introduction

ScriptCommunicator

ScriptCommunicator is a scriptable cross-platform data terminal that supports serial port (RS232, USB to serial), UDP, TCP client/server, SPI, I2C, and CAN. All sent and received data can be shown in a console and can be logged in an html and a text log.

In addition to the simple sending and receiving of data, ScriptCommunicator has a JavaScript interface. This script interface has the following features:

  • Scripts can send and receive data with the main interface.
  • In addition to the main interface scripts can create and use their own interfaces (serial port (RS232, USB to serial), UDP, TCP client, TCP server, PCAN, and SPI/I2C).
  • Scripts can use their own GUI (GUI files which have been created with QtDesigner (is included) or QtCreator).
  • Multiple plot windows can be created by scripts (QCustomPlot developed by Emanuel Eichhammer is used)

Features

  • seriel port (RS232, USB to serial)
  • TCP client/server (network proxy support for TCP clients)
  • UDP
  • SPI (Aardvark I2C/SPI)
  • I2C (Aardvark I2C/SPI)
  • CAN (PCAN-USB, only on windows)
  • utf8, hexadecimal, decimal, binary and mixed console
  • html and text log
  • script interface (JavaScript)->run automated test jobs, automatic device configuration scripts...
  • use ui files (user interface created with QtDesigner (is included) or QtCreator) from script->building test GUIs, control GUIs...
  • plotting data via script and export the generated graphs to file (png, jpg, bmp, pdf and csv)->e.g. to visualize a PID controller or a heater
  • multi user and multi workspace support

main window

main window

dark mode

dark mode

example script GUI

example script GUI

Homepage

https://sourceforge.net/projects/scriptcommunicator/

Downloads (release 06.06)

scriptcommunicator_serial-terminal's People

Contributors

andreatta avatar danielt3 avatar jakeler avatar mmrein avatar szieke avatar veeman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scriptcommunicator_serial-terminal's Issues

ASCII is wrong

Hello,

I printed string via uart as below.

printf("SM Mask : %d.%d.%d.%d\n\r",gWIZNETINFO.sn[0],gWIZNETINFO.sn[1],gWIZNETINFO.sn[2],gWIZNETINFO.sn[3]);

But I got "SM Maskÿ".

image

Is there something I missed?

Thank you.
BR.

Serial port Parity is useless

Hi
what ever it changed with the PARITY setting in the setting interface,I can receive with the correct data(Using another Serial port simulator with different PARITY)。
Append:I connect the port using the “virtual serial port(Eltima Software)”。

createProcessAsynchronous working directory

if working directory of the process is set to another that ScriptCommunicator directory function not work properly. workaround is copy some dll library (libgcc,libstdc++,libwinpthread, Qt5Core) from ScriptCommunicator directory to working directory.

Windows 10
SC 05.02
qt 5.5.1

libc.so.6: version `GLIBC_2.34' not found

Hi Stefan, V06.02 or V06.03 does not want to run under Ubuntu 20.04, ScriptCommunicator.sh returns error:

./ScriptCommunicator: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./ScriptCommunicator)

Seems like an issue with newer GCC compiler. V06.01 or earlier runs without issues.

WebViewLibs not found (v 5.14 through 5.16)

Hello, I've tried running the xterm example, but I get "Missing libraries" error.

Obviously, I downloaded the WebViewLibs and tried to copy the files to various locations (install folder, subfolder, config folder, script folder..) but with no luck. I had some older SC versions on my system and it turns out that it does work as expected in v5.12 and 5.13 (copy WebView library files to install folder), but not in v5.14 or 5.16.

This was tested on Win10 64bit, but initially tried on Ubuntu 20.04 too (v5.16 with no luck).

Codeeditor/Codecompletition ScriptToolButton.api

Missing e.g. "setChecked" whyle working with ScriptToolButton.

maybe a copy n paste oops?

apitFiles\ScriptToolButton.api - line 23..27 ScriptButton -> ScriptToolButton

"So geht das nicht!"

Greetz

Scripts become unavailable after moving the folder to another directory

Version:

ScriptCommunicator 05.12 Windows no installer

Step:

  1. delete all files in %userprofile%\Documents\ScriptCommunicator
  2. unzip ScriptCommunicator_05_12_windows_no_installer.zip
  3. double click ScriptCommunicator.exe in folder "ScriptCommunicator_05_12_windows_no_installer"
  4. close ScriptCommunicator main window
  5. move ScriptCommunicator_05_12_windows_no_installer folder to any other directory
  6. double click ScriptCommunicator.exe again
  7. double click any script in the right Scripts list

Result:

shows up a window and says: error starting script.....

Create an exe file

Hello there!
I've create a program,and i wanna put .sce file,and .ui & .js (present in a subfolder named "scripts"),in a single file not editable one time compiled.
It's a pure dream,or i can do somethings?

Thanks for the great job

missing scriptObject.h?

Hi Stefan,

Is it possible, that scriptObject.h in folder scriptClasses is missing?
I tried to build the project and it could not find this file.

Regards,
cee

Minor Bug: Console updates incorrectly after settings change (data loss)

Issue

console data loss when using break after x bytes and triggering refresh of console (open/close settings)

Reproduction

Steps:

  • set console settings to only break after e.g. 7* bytes but not after LF/CR
  • get some data (formatted correctly)
  • open and close settings again

Expected outcome: console output should not change

Outcome: console output gets reformatted and some data is lost

  • input data gets truncated (see examples)
  • sent data is lost

Tested with:

  • Windows 10,
  • Version 05.18
  • serial and TCP connections
  • settings other than break after x bytes seem to have no impact (also e.g happens in mixed mode)

*) all values for x work except for 1 - then the behaviour is as expected

Example

Hex

Output before changing settings:

31 32 33 34 35 36 37
37 36 35 34 33 32 0a

Output after changing settings:

34 35 36 37
34 33 32 0a

UTF8

Output before changing settings:

ABCDEFG
HIJKLMN
OPQRSTU
VWXYZ

Output after changing settings:

DEFG
KLMN
RSTU
ZY

Potential solution

I only looked at the code but could not debug it (don't have a QT toolchain). But likely not all data data is stored in m_storedConsoleData.

For input data, it seems like it the first 3 bytes after a line break are missing. Looking at the code I don't really have an explanation since the same data should get printed initially and stored 😞

Second Y axis support in plot widget

Currently the plot widget is limited to single Y axis. The underlying QCustomPlot library supports dual Y axis (ScriptCommunicator just draws the ticks on second Y axis). It would be really useful if there was ability to write script that utilize two Y axes. Example use case is to be able to plot Temperature and Voltage (or Voltage and Current) on the same plot.

scriptFile.checkFileExists issue

Hi Stefan,
it seems scriptFile.checkFileExists doesn't work properly on my side.
I'm using ScriptCommunicator 6.00 and Windows 10.
My worker script is stored on a different folder respect to the file I'm trying to check.
The following code always returns false, even if folder & file are present:

var fileExist = scriptFile.checkFileExists("C:/Data/MyData.bin");
if (fileExist == true)
{
	printString ("File " + filename + " exists");
}
else
{
	printString ("Error! File " + filename + " doesn't exists");
}

The code returns this message:
Error! File C:/Data/MyData.bin doesn't exists
The only way I found to fix the problem is to store my file on the script folder and remove the path from the checkFileExist input parameter.
Thank you in advance for your support.
KR

Help file missing

Help > Manual results in

error
could not open Manua_ScriptCommunicator.pdf

ESP32 Backtrace Decoder

Hi Stefan,
I'm currently working on script based on ANSIColorConsole which adds an option to automatically decode backtrace in ESP32 log outputs.

I see by the current activity that there may be new release comming and I believe it would be nice to include it if that is the case. It should be ready in next few days.

What is the current status, would you mind waiting for it?

Feature request:

Could you have a couple of options so that:

  1. In the text field where one can type characters to be directly sent over the connection, a CR, LF, or CR/LF is automatically sent at the end of the line even if no end of line character is included, and perhaps the sending happens when the carriage return is pressed?
  2. Could there be an option to automatically erase the text field after the characters have been sent?

Thanks for your consideration. I need these features to help support communication with a serial device I am making, and this would avoid certain mistakes from being made.

Question: intended behavior scriptThread.stopScript()

When developing a script today, I wanted to stop execution when the user cancels a selection in a combo box.
I called scriptThread.stopScript() but the execution did not stop (ran into an exception since the lookup of the non existent / empty selected value failed)

What is the intended way to completely stop the execution of a script? Is this possible at all? Or do I need to build a big chain of if/else to make sure I do not run into issues with not selected values?

Few questions

cheetahSpi/cheetah.so seems to have no source file, what's the deal ?
aardvark.so is not build with the latest release, is that normal ? (only have aardvarkI2cSpi.o aardvark.o ).
why don't put sources at folder root on the github repo ?
Can you explicit Qt5DesignerComponents customization and how we can build it, it seems to be hard to make all this work :)

I'm fixing my package for nixos NixOS/nixpkgs#36747

Console wrapping

I have a really long-line-length output that I actually don't want to wrap before its included \r\n, and I can't figure out a way to keep it from wrapping in the ascii output pane.

In the "console options" page, of all of the "new line" configurations, I have only "new line at byte LF" enabled.

I'm running the 5.10 release on Ubuntu 14.04 x64.

About license

I try to find but I could not find any information in your software and source code that if I want to use this tool in work, should I buy a commercial license or I can use it feely, I sent email but no repsonse, could you answer the question?
Thank you!

missing "scriptPlotwidget.h"

Cannot compile due to missing header file.

scriptClasses/plotwindow.h:30:30: fatal error: scriptPlotwidget.h: No such file or directory
#include "scriptPlotwidget.h"

Build errors with Qt 5.11

Generating the Makefile with: qmake -o Makefile ScriptCommunicator.pro and trying to build with make gives:

/usr/bin/uic mainwindow.ui -o ui_mainwindow.h
/usr/bin/uic settingsdialog.ui -o ui_settingsdialog.h
/usr/bin/uic sendwindow.ui -o ui_sendwindow.h
/usr/bin/uic scriptwindow.ui -o ui_scriptwindow.h
/usr/bin/uic addmessagedialog.ui -o ui_addmessagedialog.h
/usr/bin/uic plotwindow.ui -o ui_plotwindow.h
/usr/bin/uic colorWidgets/color_dialog.ui -o ui_color_dialog.h
/usr/bin/uic colorWidgets/color_palette_widget.ui -o ui_color_palette_widget.h
/usr/bin/uic createSceFile.ui -o ui_createSceFile.h
g++ -c -pipe -Wno-int-to-pointer-cast -Wno-write-strings -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQUAZIP_STATIC -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_UITOOLS_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SERIALPORT_LIB -DQT_XML_LIB -DQT_SCRIPT_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_SCRIPTTOOLS_LIB -DQT_CORE_LIB -I. -IscriptClasses -IscriptClasses/scriptUiClasses -IcheetahSpi -IaardvarkI2cSpi -Ipcan -IscriptClasses/canvas2D -Iquazip -IScriptEditor -isystem /usr/include/qt -isystem /usr/include/qt/QtPrintSupport -isystem /usr/include/qt/QtUiTools -isystem /usr/include/qt/QtWidgets -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtSerialPort -isystem /usr/include/qt/QtXml -isystem /usr/include/qt/QtScript -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtSql -isystem /usr/include/qt/QtScriptTools -isystem /usr/include/qt/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib/qt/mkspecs/linux-g++ -o main.o main.cpp
g++ -c -pipe -Wno-int-to-pointer-cast -Wno-write-strings -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQUAZIP_STATIC -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_UITOOLS_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SERIALPORT_LIB -DQT_XML_LIB -DQT_SCRIPT_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_SCRIPTTOOLS_LIB -DQT_CORE_LIB -I. -IscriptClasses -IscriptClasses/scriptUiClasses -IcheetahSpi -IaardvarkI2cSpi -Ipcan -IscriptClasses/canvas2D -Iquazip -IScriptEditor -isystem /usr/include/qt -isystem /usr/include/qt/QtPrintSupport -isystem /usr/include/qt/QtUiTools -isystem /usr/include/qt/QtWidgets -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtSerialPort -isystem /usr/include/qt/QtXml -isystem /usr/include/qt/QtScript -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtSql -isystem /usr/include/qt/QtScriptTools -isystem /usr/include/qt/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib/qt/mkspecs/linux-g++ -o mainwindow.o mainwindow.cpp
g++ -c -pipe -Wno-int-to-pointer-cast -Wno-write-strings -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQUAZIP_STATIC -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_UITOOLS_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SERIALPORT_LIB -DQT_XML_LIB -DQT_SCRIPT_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_SCRIPTTOOLS_LIB -DQT_CORE_LIB -I. -IscriptClasses -IscriptClasses/scriptUiClasses -IcheetahSpi -IaardvarkI2cSpi -Ipcan -IscriptClasses/canvas2D -Iquazip -IScriptEditor -isystem /usr/include/qt -isystem /usr/include/qt/QtPrintSupport -isystem /usr/include/qt/QtUiTools -isystem /usr/include/qt/QtWidgets -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtSerialPort -isystem /usr/include/qt/QtXml -isystem /usr/include/qt/QtScript -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtSql -isystem /usr/include/qt/QtScriptTools -isystem /usr/include/qt/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib/qt/mkspecs/linux-g++ -o settingsdialog.o settingsdialog.cpp
settingsdialog.cpp: In constructor 'SettingsDialog::SettingsDialog(QAction*)':
settingsdialog.cpp:179:86: error: no matching function for call to 'SettingsDialog::connect(QAction*&, const char [13], SettingsDialog*, const char [21])'
     connect(actionLockScrolling, SIGNAL(triggered()), this, SLOT(lockScrollingSlot()));
                                                                                      ^
In file included from /usr/include/qt/QtWidgets/qwidget.h:45,
                 from /usr/include/qt/QtWidgets/qdialog.h:44,
                 from /usr/include/qt/QtWidgets/QDialog:1,
                 from settingsdialog.h:28,
                 from settingsdialog.cpp:25:
/usr/include/qt/QtCore/qobject.h:208:36: note: candidate: 'static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)'
     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:208:36: note:   no known conversion for argument 1 from 'QAction*' to 'const QObject*'
/usr/include/qt/QtCore/qobject.h:211:36: note: candidate: 'static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)'
     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:211:36: note:   no known conversion for argument 1 from 'QAction*' to 'const QObject*'
/usr/include/qt/QtCore/qobject.h:463:32: note: candidate: 'QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const'
 inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
                                ^~~~~~~
/usr/include/qt/QtCore/qobject.h:463:32: note:   no known conversion for argument 1 from 'QAction*' to 'const QObject*'
/usr/include/qt/QtCore/qobject.h:228:43: note: candidate: 'template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)'
     static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
                                           ^~~~~~~
/usr/include/qt/QtCore/qobject.h:228:43: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of 'template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]':
settingsdialog.cpp:179:86:   required from here
/usr/include/qt/QtCore/qobject.h:228:43: error: no type named 'Object' in 'struct QtPrivate::FunctionPointer<const char*>'
/usr/include/qt/QtCore/qobject.h:260:13: note: candidate: 'template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)'
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:260:13: note:   template argument deduction/substitution failed:
settingsdialog.cpp:179:86: note:   candidate expects 3 arguments, 4 provided
     connect(actionLockScrolling, SIGNAL(triggered()), this, SLOT(lockScrollingSlot()));
                                                                                      ^
In file included from /usr/include/qt/QtWidgets/qwidget.h:45,
                 from /usr/include/qt/QtWidgets/qdialog.h:44,
                 from /usr/include/qt/QtWidgets/QDialog:1,
                 from settingsdialog.h:28,
                 from settingsdialog.cpp:25:
/usr/include/qt/QtCore/qobject.h:269:13: note: candidate: 'template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)'
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:269:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of 'template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]':
settingsdialog.cpp:179:86:   required from here
/usr/include/qt/QtCore/qobject.h:269:13: error: no type named 'type' in 'struct std::enable_if<false, QMetaObject::Connection>'
/usr/include/qt/QtCore/qobject.h:300:13: note: candidate: 'template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)'
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:300:13: note:   template argument deduction/substitution failed:
settingsdialog.cpp:179:86: note:   candidate expects 3 arguments, 4 provided
     connect(actionLockScrolling, SIGNAL(triggered()), this, SLOT(lockScrollingSlot()));
                                                                                      ^
In file included from /usr/include/qt/QtWidgets/qwidget.h:45,
                 from /usr/include/qt/QtWidgets/qdialog.h:44,
                 from /usr/include/qt/QtWidgets/QDialog:1,
                 from settingsdialog.h:28,
                 from settingsdialog.cpp:25:
/usr/include/qt/QtCore/qobject.h:308:13: note: candidate: 'template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)'
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:308:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of 'template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]':
settingsdialog.cpp:179:86:   required from here
/usr/include/qt/QtCore/qobject.h:308:13: error: no type named 'Object' in 'struct QtPrivate::FunctionPointer<const char*>'
settingsdialog.cpp: In member function 'void SettingsDialog::setAllSettingsSlot(Settings&, bool)':
settingsdialog.cpp:814:26: error: invalid use of incomplete type 'class QAction'
     m_actionLockScrolling->setChecked(settings.lockScrollingInConsole);
                          ^~
In file included from /usr/include/qt/QtWidgets/qdialog.h:44,
                 from /usr/include/qt/QtWidgets/QDialog:1,
                 from settingsdialog.h:28,
                 from settingsdialog.cpp:25:
/usr/include/qt/QtWidgets/qwidget.h:68:7: note: forward declaration of 'class QAction'
 class QAction;
       ^~~~~~~
settingsdialog.cpp: In member function 'void SettingsDialog::updateSettings(bool)':
settingsdialog.cpp:2021:69: error: invalid use of incomplete type 'class QAction'
     m_currentSettings.lockScrollingInConsole = m_actionLockScrolling->isChecked();
                                                                     ^~
In file included from /usr/include/qt/QtWidgets/qdialog.h:44,
                 from /usr/include/qt/QtWidgets/QDialog:1,
                 from settingsdialog.h:28,
                 from settingsdialog.cpp:25:
/usr/include/qt/QtWidgets/qwidget.h:68:7: note: forward declaration of 'class QAction'
 class QAction;
       ^~~~~~~
make: *** [Makefile:3010: settingsdialog.o] Error 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.