This question and answer How do you get the system default font size in Qt? suggests that a QFont object starts with the system default. Also, the API docs indicate that the default QFont constructor does this (http://doc.qt.io/qt-5/qfont.html#QFont), and also suggests QGuiApplication::font() as another way to get the default font....
You need to access the actual size of the scaled image, in order to so there is the paintedHeight property and paintedWidth. This would result in Item { Image { id: img source: "cluster.png" width: 150 height: 150 fillMode: Image.PreserveAspectFit } Button { id: butn anchors.left: img.left anchors.top: img.top anchors.leftMargin:...
I think (since we don't have Datenbank source code) the problem is in declaring Datenbank db; on the stack, when the function exist, database is closed leading to invalidating your query and model, to solve the issue, either declare it on the heap using new or use it as a...
Use QPainterPath to construct the shape of each country. You can do this using moveTo() and lineTo(). Once you have this, make it a member variable of a custom QQuickItem - let's call it CountryItem. You could make the image a child of this item after exposing it to QML...
According to http://qt.apidoc.info/5.1.1/qtgui/qpainter-pixmapfragment.html in Qt5 your code should look like this: void ButtonSelector::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option); Q_UNUSED(widget); //painter->drawPixmap(m_backGnd.rect(), m_backGnd); QRectF rectSrc = QRectF(m_backGnd.rect()); QRectF rectTrg = boundingRect(); QPainter::PixmapFragment fragment = QPainter::PixmapFragment::create(rectTrg.center(), rectSrc, rectTrg.width() / rectSrc.width(), rectTrg.height() /...
I solved this problem with "static library config" so that it will not make ".so" libs and then link that static library with main program. TEMPLATE = lib CONFIG += staticlib ...
toString as applied to a function is an implementation detail. Per ECMA-262, it should works as you expect, but evidently, as implemented, it doesn't :( In any case, the standard allows it to work differently between implementations. You depended on an implementation detail, then changed your implementations, so you shouldn't...
It's very simple, just get the current document and set its text: plain_text_edit->document()->setPlainText(text); Alternative way, first clear the editor, then append new text: plain_text_edit->clear(); // unless you know the editor is empty plain_text_edit->appendPlainText(text); You could also use text cursor of the editor in many ways to achieve this, most simply...
try to use .uninstall command. mytarget2.path = ~/Documents/inst mytarget2.target = test.txt mytarget2.commands = @echo "custom command" mytarget2.uninstall = @echo "uninstall" INSTALLS += mytarget2 it will generate this makefile: ####### Install install_mytarget2: first FORCE @test -d $(INSTALL_ROOT)/Users/mac/Documents/inst || mkdir -p $(INSTALL_ROOT)/Users/mac/Documents/inst @echo custom command uninstall_mytarget2: FORCE @echo uninstall -$(DEL_DIR) $(INSTALL_ROOT)/Users/mac/Documents/inst/ install:...
Did you do step 3 and 4 here? : Combining Qt 5.4.1 with vtk 6.2.0 (using CMake GUI 3.2.1) on windows I'm guessing you didn't change VK_QT_VERSION to 5...
qt,raspberry-pi,cross-platform,qt5,raspbian
To create a Qt5 for the Raspberry Pi several steps are necessary: Get the Qt5 sources from git. To checkout Qt5: git clone http://code.qt.io/cgit/qt/qt5.git or git clone http://code.qt.io/qt/qt5.git The repository might change from time to time. The qt project is still evolving. Above command in done on the Linux host....
Usually you have to create a custom delegate that paints the text the way you want. You can read about it here. But if you want to customize a QListWidget you can simply use the QListWidget::setItemWidget method: QListWidget *list = new QListWidget; QListWidgetItem *item = new QListWidgetItem(list); QLabel *label =...
After several hours digging my head, I finally found the answer. it was not about rtspsrc. in fact, I had to use gstreamer-0.10, and I tried to create avdec_h264 element with that version, instead of gstreamer-1.0. But I finally move to ffdec_h264, wich is an element of gstreamer-0.10, and ......
c++,qt,qt5,qtableview,qvector3d
The Qt::DisplayRole requires a QString in the variant, but you are providing a QVector3D. There is no conversion from QVector3D to QString in QVariant (see documentation). You should either convert the Vector to a string representation yourself, or use a QStyledItemDelegate to override the displayText method for converting QVector3D to...
Finally I found the answer to this. I must thank @sashoalm for leading me through the debugging process but I guess it is not exactly a bug of cinnamon. In the open file call: QFileDialog::getOpenFileName(this, tr("Open SRT File"), "/home", tr("SRT Files (*.srt)")); the problem is solved when I change this...
qt,qml,qt5,user-agent,qtwebengine
I'm interested in using QtWebEngine too. And I can suggest you use QtWebEngine developers Trello. As you can see in Todo for 5.5 this is currently under development and may be done in 5.5....
It is possible to have your DeviceMngr and Framework instances in the same thread. To do this, you'll need to keep the QThread instance you want to have in common between them in one place (or pass a pointer). Do you have a reason for not making your DeviceMngr instance...
Note that in Qt5 QRegExp != QRegularExpression and I'm much more familiar with QRegExp. That said, I can't see a way to do what you want with QRegularExpression or QRegularExpression::match(). I would instead use QString::indexOf to search forwards and QString::lastIndexOf to search backwards. You can do this with either QRegExp...
QDomDocument stores the attributes of a given node in a QHash, which protects itself against algoritmic complexity attacks by salting the hash calculation of any given key with a random salt. Of course, for testing purposes this is a counter feature. Solution: run your testcase with the environment variable QT_HASH_SEED...
Here is how you do it: #include "tcpreceiver.h" // Debug #include <QDebug> #include <QHostAddress> TcpReceiver::TcpReceiver(QObject *parent) : QObject(parent) { // Create a server qDebug() << "Creating a TCP Server..."; // Create the server m_Server = new QTcpServer(this); // Listen on the proper port m_Server->listen( QHostAddress::Any, 0x2616 ); // Hook up...
However, somewhere this is getting overridden. When I print the projection matrix in the paintGL() function, it shows it as identity. And you're surprised exactly why? Qt5 may use OpenGL for drawing its stuff. Which means that Qt will have to set the state of the OpenGL context according...
As stated in the comments, the Qt Virtual Keyboard is only available in top level licensed version of Qt, i.e. the "professional" and "enterprise" ones, as clearly demonstrated by the feature table available at this download page. "Community edition" (the open source version of Qt) does not include the keyboard....
It is not a bug. Just don't use the single quotes. The bindValue mechanism does not just replace your :path with a string in your statement. No risk of name conflicts. See it as some kind of different namespace. :-) http://en.wikipedia.org/wiki/Prepared_statement: Prepared statements are normally executed through a non-SQL binary...
file inside DownloadToFile already is a pointer to the ftpfile-structure, so remove the & before the file variable: curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)file); ...
INCLUDEPATH +=/usr/local/include LIBS +=-L/usr/local/lib -lhpdf note that I used -lhpdf instead of -libhpdf and ensure that file libhpdf.a exists in the mentioned path. See this answer: How to include needed C library using gcc?...
QStringList has serialization operators implemented, but it will only work for data streams which were serialized from a QStringList to begin with. QStringList l; l << "aaa" << "bbb" << "ccc"; QBuffer buf; QDataStream stream(&buf); buf.open(QIODevice::ReadWrite); stream << l; buf.seek(0); QStringList l1; stream >> l1; qDebug() << l1; // works...
c++,multithreading,qt5,signals-slots
My first thought is that having either thread block until an operation in the other thread completes is a poor design -- it partially defeats the purpose of having multiple threads, which is to allow multiple operations to run in parallel. It's also liable to result in deadlocks if you're...
qt,qt5,qpushbutton,qstylesheet
As Illuminated in the parallel post How to obtain entire Qt StyleSheet for QMacStyle, my original question was based on confused premise. In Qt, all widgets are styled via a QStyle(). By default for Qt code on OSX (as in my first block of demonstration code in the original question),...
I found the issue! Very unobvious (haven't found documented anywhere) and it fails silently. The problem is that MyCustomItem contained a property with the same name of outer booleal property isExpanded so in this code: MyCustomItem { id: myId visible: isExpanded // other stuff } isExpanded is from MyCustomItem. But...
The behavior you're seeing is not really surprising. In fact, it's exactly what happens with a (mostly) well-behaved Windows app like Notepad, so I'm not sure I'd even call it a bug. Open Notepad, and select Help->About to get a modal dialog. Now choose Close from the task bar icon....
All i wanted was to set large icons to QHeaderView but with css i can access just to first and last item, i found a solution to change size of QHeaderView items icons via QProxyStyle class and i will share my solution here: All you need to to is to...
android,c++,qt,qt5,qtandroidextras
The main difference is that QAndroidJniObject::callMethod returns a primitive data type like jint or jbyte but QAndroidJniObject::callObjectMethod returns an object of type QAndroidJniObject. Using which one all depends on your needs and the return type of the function you want to call. If your function returns an object type like...
The problem is that &QSerialPort::error is ambiguous: There's the signal you're trying to connect to: QSerialPort::error(QSerialPort::SerialPortError) But then there's also a getter with the same name: QSerialPort::error() That's unfortunate design of the QSerialPort class (QProcess has the same problem), and might be fixed in Qt 6, but not before that,...
It's really not that difficult. Start by building up the structure with QJsonObjects QJsonObject obj; obj.insert("tag1", QString("Some text")); Then use QDocument to get a string in Json format QJsonDocument doc(obj); QByteArray data = doc.toJson(QJsonDocument::Compact); QString jsonString(data); This will produce a string, in the form of: - { "tag1" : "Some...
If your application uses libraries other than Qt, you need to copy the frameworks in yourApplication.app/Contents/Frameworks/ Edit: If your program is a console application, just create a shell script like this, put it in the same directory as your executable in app bundle, and modify your Info.plist so that this...
If you compile Qt first without QtWebKit (configure -skip qtwebkit), you can modify Tools/qmake/mkspecs/features/features.pri from the QtWebKit source to enable or disable features. Then generate Makefile from WebKit.pro and run nmake. Now QtWebKit should build with the features you've set.
To quote the documentation: You can convert the array to and from text based JSON through QJsonDocument. In other words, all you need to do is this: QJSonArray data; QJSonDocument doc; doc.setArray(data); QString dataToString(doc.toJson()); That's all there is to it!...
Is this supposed to work that way? I suspect that the author of the QStackedLayout class never considered the possibility of somebody putting a top-level-widget into the layout. That seems like an odd thing to want to do. Regarding intent: without talking to the author, though, the best we...
You create two event loops: w.exec() a.exec() The second event loop is started after you close the dialog, so it will wait indefinitely for a window to be closed. You can either call show() for the dialog or not use the QApplication event loop at all: int main(int argc, char...
Yes, you can do a HEAD request to a given URL. bool urlExists (QString url_string) { QUrl url(url_string); QTcpSocket socket; socket.connectToHost(url.host(), 80); if (socket.waitForConnected()) { socket.write("HEAD " + url.path().toUtf8() + " HTTP/1.1\r\n" "Host: " + url.host().toUtf8() + "\r\n\r\n"); if (socket.waitForReadyRead()) { QByteArray bytes = socket.readAll(); if (bytes.contains("200 OK")) { return...
QML uses data from Qt by converting every parameter to QVariant and then, if possible, to native JavaScript values. If they cannot be converted to JS, you can still copy and pass them with JS but you won't be able to use them. Without extending QVariant, only QObject* can be...
Here is your answer: QString str = "2015-05-17T05:16:22.126Z"; QDateTime dateTime = QDateTime::fromString(str, "yyyy-MM-ddThh:mm:ss.zzzZ"); QString newStr = dateTime.toString("yyyy-mm-dd"); (don't hesitate to see the documentation of the Qt framework, this page for example)...
This should fix it for you: https://forum.qt.io/topic/21605/solved-qt5-vs2010-qdatetime-not-enough-actual-parameters-for-macro-min-max/5 The C++ min/max macro are being wrong called. So you can set the NOMINMAX before call the header to solve. There're several ways to achieve that, as it's being described in the link I sent. i.e: #define NOMINMAX #include <windows.h> or set the...
It is a bug in the version of Qt 5.4.1. Reported.
Just connect a single slot to handle textChanged signals of both LineEdits void Question_Answer::onTextChanged(const QString &arg1){ if(ui->newAnswer_txt->text().isEmpty() || ui->newQuestion_txt->text().isEmpty()){ ui->addNewQuestion_btn->setEnabled(false); }else{ ui->addNewQuestion_btn->setEnabled(true); } } ...
You can use a GridLayout instead of building a grid by means of ColumnLayout and RowLayout. By using the GridLayout, what you want is already guaranteed by the component. Here is a full example from which you can start: import QtQuick 2.3 import QtQuick.Window 2.2 import QtQuick.Controls 1.2 import QtQuick.Layouts...
I understand where I went wrong. In the first case I add my scrollarea as a sub-widget to the centralwidget. In the second example I add the scrollarea as the centralwidget which expands it to the whole tabwidget. I resolved the second case by first adding a holder QWidget as...
You don't need to set WindowStaysOnTopHint flag to force your dialog stay on top of main window. Just set main window as the parent of the dialog when instantiating it in the constructor of main window like : dialog = new MyDialog(this); ...
You can use QUrl:fromUserInput(...) for that purpose. QString first("qt-project.org"); QString second("ftp.qt-project.org"); QString third("hostname"); QString fourth("/home/user/test.html"); qDebug() << QUrl::fromUserInput(first); // QUrl( "http://qt-project.org" ) qDebug() << QUrl::fromUserInput(second); // QUrl( "ftp://ftp.qt-project.org" ) qDebug() << QUrl::fromUserInput(third); // QUrl( "http://hostname" ) qDebug() << QUrl::fromUserInput(fourth); // QUrl( "file:///home/user/test.html" ) ...
The question conflates two issues: How to draw stretched fonts? It's easy: change the horizontal or vertical scaling of the QPainter. Qt will do the rest for you. E.g: QPainter p; p.setTransform(QTransform(2.0, 0, 0, 1.0, 0, 0))); p.drawText(0, 0, "STRETCHED"); How to express stretch in rich text? That's not directly...
qt,tabs,qt5,qtabwidget,qtabbar
You can disable text elision with: tabs->setElideMode(Qt::ElideNone); ...
Function list() work asynchronously. After you call this function it immediately returns unique identifier. This id passed in commandStarted() signal when command started and in commandFinished() signal when list command finished. Between this two signals listInfo() signal is emitted for each directory entry found. So before upload to directory you...
xml,qt,qt5,xml-namespaces,qt5.4
QXmlStreamReader::setNamespaceProcessing() is the answer: reader.setNamespaceProcessing(false); ...
Thanks to Jeremy Friesner's comment I get the working code: main.cpp: #include <QApplication> #include <QQmlApplicationEngine> #include <QtQuick> class MyItem : public QQuickItem { public: MyItem() { setAcceptHoverEvents(true); setAcceptedMouseButtons(Qt::AllButtons); setFlag(ItemAcceptsInputMethod, true); } void mousePressEvent(QMouseEvent* event) { QQuickItem::mousePressEvent(event); qDebug() << event->pos(); } //This is function to override: void hoverMoveEvent(QHoverEvent* event) {...
Qt is using a resource system for this task. This is also supported by pyqt. There are a few answers here on SO already: here and here Here is a quick example: First, create a resource file (e.g., resources.qrc). <!DOCTYPE RCC><RCC version="1.0"> <qresource prefix="/images"> <file alias="image.png">images/image.png</file> </qresource> </RCC> Then compile...
I guess the file main.qml is not found. You should get an error message "... File not found" in the console. To solve this problem either supply a valid path on your drive or use Qt's resource management. This is documented here, I'll outline the steps: 1) Create file test.qrc...
c++,qt,qt5,qkeyevent,qkeysequence
Solved it, not the best solution but quick...If you want something more customize, I think you have to build it yourself... customkeysequenceedit.h: #ifndef CUSTOMKEYSEQUENCEEDIT_H #define CUSTOMKEYSEQUENCEEDIT_H #include <QKeySequenceEdit> class QKeyEvent; class CustomKeySequenceEdit : public QKeySequenceEdit { Q_OBJECT public: explicit CustomKeySequenceEdit(QWidget *parent = 0); ~CustomKeySequenceEdit(); protected: void keyPressEvent(QKeyEvent *pEvent); }; #endif...
I came up with an interesting solution. Perhaps it was obvious but I didn't see it at first. I basically created a single static variable of type QOpenGLFunctions_3_3_Core inside a dummy class, GL, and used that through out the entire code whenever an OpenGL function was needed. For example class...
query.prepare("SELECT EXISTS(SELECT 1 FROM files WHERE pid=:pid AND files.name=':name' LIMIT 1);"); query.bindValue(":pid", PID); query.bindValue(":name", fi.fileName()); if (!query.exec()){ qCritical() << query.lastError(); qFatal(SQLERR); } else { if( query.next( ) ) QMessageBox::information( NULL , "Test" , query.value( 0 ).toString( ) ); } That works perfectly for me. Basically .next( ) will retrieve the...
Huh! I found the solution and it may sounds like buy yourself some brain. I thought, that qmake is launched every time the project file is changed (output of message commands proved my thoughts), but it's not really the way things happen in Qt. I don't know how exactly, but...
I think you forget to append moc and resources to your executable use qt5_wrap_cpp() for mocs use qt5_add_resources() for resources. Then you must append vars to add_executable check out this link. ...
qt,raspberry-pi,qt5,alsa,pulseaudio
The answer was to run in session mode ( not a system-wide PulseAudio daemon ) and edit default.pa to look like this: ## Create the default output device #load-module module-udev-detect tsched=0 load-module module-alsa-card device_id=0 #load-module module-alsa-card device_id=0 tsched=0 fragments=10 fragment_size=640 tsched_buffer_size=4194384 tsched_buffer_watermark=262144 #load-module module-alsa-card device_id=0 tsched=0 fragments=6 fragment_size=16 tsched_buffer_size=4194384 tsched_buffer_watermark=262144...
You can read your file line by line like this. Create your variable indicating whether to read e.g. readEnabled. After you've read the line, check for your tokens: QFile inputFile(fileName); QString outputText, startToken = "#qtread", endToken = "#qtend"; if (inputFile.open(QIODevice::ReadOnly)) { QTextStream in(&inputFile); bool readEnabled = false; while (!in.atEnd()) {...
AFAIK such feature is not available in the QSlider implementation. However, you can create your own class deriving from QSlider and implement the desired behavior by overwriting mousePressEvent, mouseReleaseEvent, mouseMoveEvent, keyPressEvent and keyReleaseEvent and only call the respective parent implementation if the readOnly property is set to false. Luckily, such...
You should rotate the QGraphicsPixmapItem, not the pixmap itself. Use QGraphicsItem::setTransformOriginPoint to define the transform origin point and QGraphicsItem::setRotation to rotate the item.
c++,constructor,abstract-class,qt5
The methods you do not implement in the abstract class, should be pure virtual methods. That mean they should be followed by = 0. For example: virtual double value() = 0; This tells the compiler that this is a pure virtual method. For an explanation of the difference between virtual...
c++,linux,raspberry-pi,qt5,raspbian
Your default argument for QString isn't valid: QString label = NULL NULL is just a macro for 0, so you are effectively saying QString label = 0. QString doesn't define a way to create a QString from an int, which is the reason for your error - on most platforms...
QSystemLibrary::load is called with onlySystemDirectory = false for SSL, so QFileInfo(qAppFileName()).path() is the first place where the DLLs are searched. Search order: application dir system path (e.g. C:\Windows\System32) all paths in PATH I don't find documentation for that, but in our software, Qt finds SSL libeay32.dll and ssleay32.dll when they...
c++,eclipse,cmake,qt5,kdevelop
Check out the documentation for cmake-qt at http://www.cmake.org/cmake/help/v3.0/manual/cmake-qt.7.html According to that target_link_libraries(qt4_training Qt5::Widgets) might fix your linker errors. Your include directories also look wrong, you should not add LIBRARIES variables here...
There is an error in your code. This line: QDataStream read(&file); defines a local variable, which overrides class member. Instead you should do this: read.setDevice(&file); ...
OSX menu bars must have a fixed height and your button doesn't fit there. Try to remove layout margins: cornerLayout->setContentsMargins(0, 0, 0, 0); And / or make the button smaller: newWindowButton->setMaximumHeight(30); Also, adjust margin to what best fits your needs: menuCorner->setStyleSheet("margin-top: 2"); This is how it looks for me: ...
No, there is not. You could fake it, if you still have the source tree. In qt5/qtbase you find two files: config.summary and config.status. Those contain the info you seek. However, these files are not part of a normal installation.
I have provided an example that shows this. https://github.com/jsuppe/qt-paint What this example shows is: Create a widget & handle mouse events & paint event The widget contains a QImage which is the size of the widget. Write to the QImage the pixel coordinates when the mouse events occur Tell the...
I would go with a plain column and access the desired width property directly by id. As I understand these container elements are measuring their size depending on their content, that might be the reason why setting the ColumnLayouts width has no effect. This works for me: ScrollView { anchors.fill:...
I changed my code to this. void SquareIDE::on_fontBox_currentFontChanged(const QFont &f) { ui->fontBox->setFont(f); ui->textEdit->setMarginsFont(f); lexer1->setFont(f); } ...
No. Prove The following command line script generates a dependency list of Qt 5 modules on Linux: # Run in e.g. Qt/5.4/gcc_64/lib for f in libQt5*.so; do mod=$(basename "$f" .so | cut -c "7-"); echo "$mod"; ldd "$f" | grep "libQt5" | cut -f 1 -d">" | tr -dc "a-zA-Z0-9.[:space:]"...
qt,qt5,text-alignment,qstyle,qstylesheet
As I suggest in answer to you another question. http://stackoverflow.com/a/28630318/1917249 Do not use QToolButton, just use QPushButton, and add popup menu if needed. Then you wont have different sizes of QToolButton and QPushButton widgets. And you will have centered icon and text. Popupmenu can be easily added to QPushButton (...
First off all - thank you for this question. Before this time I am do not know about this feature in Qt. I spend some time to implement your solution and have the same problem: white border. After few tests I try to do window reparenting on the fly and...
Create DestDir.pri in folder, where all of your projects located. Insert next code: isEmpty(DESTDIR) { CONFIG(debug, debug|release) { DESTDIR=$$PWD/Build/Debug } CONFIG(release, debug|release) { DESTDIR=$$PWD/Build/Release } } Include DestDir.pri to each pro file: include(../DestDir.pri) You can change DESTDIR variable to your path or set this variable via qmake command line utils...
Seems like there is a Qt 5 project on Github: https://github.com/qtproject/qt5 git clone https://github.com/qtproject/qt5.git --branch v5.3.1 --single-branch 5_3_1_x64_msvc2012 If you're unsure about the integrity of the code, you can compare the tree SHA-1 of your new clone with a reference one that you have already cloned some time ago (since...
I think that you're confused by the cooperative multitasking exhibited by typical event driven applications, with their run-to-completion event handlers. This is how WIN16, GEM and other such platforms appeared to multitask with no context switches at all. I'll attempt to clear this confusion after exposing the necessary background to...
QMacStyle is a QStyle subclass that is using Apple's HITheme for drawing (look for the files qmacstyle_mac* to see the implementation), so there is no stylesheet to obtain.
Just remove ColumnLayout, that's not necessary here. This works for me (if that's what you're looking for): import QtQuick 2.2 import QtQuick.Controls 1.3 ApplicationWindow { id: appWindow visible: true width: 300 height: 500 ScrollView { anchors.fill: parent Column { Repeater { model: 10 delegate: Text { width: appWindow.width - 50...
Get rid of QApplication::processEvents and move the long operation that freezes your GUI to a new thread. You can use for example a worker object that you move to a new thread. There is a good example of this in the docs. You should also read this to learn more...
qt,qt5,pyqt5,qnetworkaccessmanager,qnetworkreply
The reply is a QNetworkReply, which is subclass of QIODevice. So, it is roughly equivalent to the file-like objects found in python. Once the file has downloaded, you should be able to do something like: data = self.reply.readAll().data() which will give you a python byte-string that can be saved to...
qt,qt5,qtwebkit,qt5.4,qtwebengine
I would give QtWebEngine a try. It is replacing QtWebKit for a reason. If you control the HTML that is getting rendered, then it probably doesn't hurt to use QWebKit. Just make sure you test your pages beforehand. QWebView uses WebKit as the backend. http://doc.qt.io/qt-5/qwebview.html#details QWebEngineView uses Chromium as the...
Try replacing the custom build steps with QMAKE_POST_LINK commands (QMAKE_POST_LINK Reference) They can be linked to a script that can be committed: win32 { QMAKE_POST_LINK = install/win/deploy } unix { QMAKE_POST_LINK = install/unix/deploy } To create pre-build steps, this is a nice example: Pre-pre-build commands with qmake....
You can use qt as the UI for your Linux app and then build the logical backend of your app in Nim, export it as a C library and call it from the user interface layer. That's what I did for Seohtracker, the UI is done in ObjectiveC for OSX...
Ahhh... now, after you added your .qrc, I understand. Easy to explain: <file alias="ae_AlMateen">ae_AlMateen.ttf</file> You added an alias in your .qrc file. If you remove alias="ae_AlMateen" it will work as we all expected... with .ttf extension....
One way to show a vídeo in multiple widgets is using a custom Video Surface class, and use them to generate a serie of QImage for you, and process/show those images the way you like. Example of a custom Video Surface: /* Here is our custom video surface, */ class...
qt,qt5,qtableview,qitemdelegate
Mouse events are send to the QAbstractItemDelegate::editorEvent() method, even if they don't start editing of the item. See: http://doc.qt.io/qt-5/qabstractitemdelegate.html#editorEvent...