Skip to content

General and Desktop

This is where all the desktop OS and general Qt questions belong.
82.7k Topics 452.2k Posts
  • How to detect spawning and destruction of windows?

    Unsolved
    2
    0 Votes
    2 Posts
    150 Views
    S

    I think you can do this with a so called shell hook library.

    https://learn.microsoft.com/en-us/windows/win32/winmsg/about-hooks

    See the part about monitoring messages. When a new window is created a WM_CREATE message is posted to the window's event queue.

  • Render a widget on top of others at runtime

    Unsolved
    4
    0 Votes
    4 Posts
    212 Views
    GrecKoG

    @Pl45m4 said in Render a widget on top of others at runtime:

    What do you mean by "on top"? As separate window? What's the point of the stacked widget then?
    Why don't you just switch the stacked widget page to show your game widget?!

    From what I understand this is meant as a non-modal popup/overlay. Everything doesn't have to be in the same plane in a UI, overlap is sometime wanted.

    @franco-amato How is m_gameWindow created?
    If you want to show it on top of m_ui->mainContainer, just create it with mainContainer as the parent. Don't add it to a layout or the QStackedWidget. The mapTo shouldn't be necessary since its position would be relative to its parent. raise shouldn't be needed if its added the the container last.

  • QPixMap management

    Unsolved
    6
    0 Votes
    6 Posts
    219 Views
    JonBJ

    @JacobNovitsky
    Images are shown on QLabels. Use those as the widgets you add to the FlowLayout.

  • 0 Votes
    4 Posts
    211 Views
    Y

    @Cobra91151 thank you,I have reinstalled some dependencies according to the steps on the official Qt website, and this issue has been resolved. Thank you very much. The main missing component was the LLVM that you mentioned.

  • Open source and they obligations for personal use.

    Unsolved
    2
    0 Votes
    2 Posts
    171 Views
    Pl45m4P

    @mackowy said in Open source and they obligations for personal use.:

    If I want to use it for my own personal, non-commercial use, without publishing anything, can i simply ignore staff like this and enjoy for free?

    As long as you dont violate (L)GPLv3, yes...

    does it force me to publish?

    No, feel free to contribute or just enjoy using Qt.
    It's about the whole open source community not about every single individual :)

    Btw through posting this here you are already contributing in some way...

  • 0 Votes
    3 Posts
    186 Views
    G

    @Christian-Ehrlicher Yes, it is window style show, when linux the arrow is in Header Text right, how to set to arrow to right under window system? Thanks.

  • 0 Votes
    13 Posts
    554 Views
    Pl45m4P

    @mpnix said in How to add a 3rd party C++ library to a Qt project?:

    So, what does "do it properly" mean in reality? Sticking with CMake seems a first wise step (I only looked at the "Make" stuff to see if it gave me any different outcome - it didn't).

    After taking a closer look, it seem to require a Cygwin environment under Windows, which is also stated here:

    @Pl45m4 said in How to add a 3rd party C++ library to a Qt project?:

    Requirements

    The exiftool application must exist on the system. This interface should be platform independent, and has been tested on Mac OS X, Linux, and Windows (Cygwin).

    So it's only "pseudo" platform-indepentent.
    Can't tell you much about Cygwin... for Unix/Linux optimized stuff I use Linux directly and not Windows.

    You could try another, more Windows friendly, Exif library. For example this one:

    https://github.com/exiv2/exiv2

    As far as I can see, it also supports CMake builds "out-of-the-box"... so no MakeFile converting etc. etc.

  • 0 Votes
    2 Posts
    146 Views
    Pl45m4P

    @Mizmas

    AFAIK no, because objects are always in their parent's coordinate system.

  • Sniffing with pcap in a GUI application

    Unsolved
    3
    0 Votes
    3 Posts
    108 Views
    JonBJ

    If pcap calls block/are synchronous then it would presumably have to go into its own thread.
    If calls are non-blocking/asynchronous then you can use those from main thread. If it's suitable maybe you can make calls on a timer. E.g. call your code intermittently rather than in a blocking loop.

  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    18 Views
    No one has replied
  • 0 Votes
    2 Posts
    110 Views
    C

    Regarding your notes: it may be independent of all those things but it may be dependent on the compiler toolchain used, the Qt version in use, and the Windows version for both recording and playback.

    The Windows component that generated the audio stream provided something odd that Windows Media Player cannot understand. ffmpeg produces valid AAC Low Complexity the Windows Media Player does understand. It's unclear what the original stream is. If the original stream was AAC Main Profile then ffprobe would have reported "Audio: aac (Main) (mp4a / 0x6134706D)...". High Efficiency AAC would be reported as "Audio: aac (HE-AAC) (mp4a / 0x6134706D)" (and less likely to be playable).

    Does the audio play correctly if extracted from the container?

    ffmpeg.exe -i original_video.mp4 -c: copy -vn original_video_audio.m4a
  • QToolTip and QLineEdit

    Solved
    4
    0 Votes
    4 Posts
    301 Views
    JonBJ

    @gabello306
    Don't forget you should polish the style after this dynamic setProperty() change. QStyle::unpolish()/polish(), QWidget::ensurePolished(). Else it may not update immediately.

  • 0 Votes
    7 Posts
    225 Views
    InTheBeningingI

    Using a custom QStyledItemDelegate like this

    class CustomListWidgetItemDelegate : public QStyledItemDelegate { public: void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override { painter->save(); if (option.state & QStyle::State_Selected) painter->fillRect(option.rect, option.palette.highlight()); else if (option.state & QStyle::State_MouseOver) painter->fillRect(option.rect, option.palette.highlight()); //left aligned if(index.data(Qt::DisplayRole).isValid()) { QString text = index.data(Qt::DisplayRole).toString(); painter->drawText(QPoint(option.rect.left() + 5, option.rect.bottom()-5), text); } //right aligned if(index.data(Qt::UserRole).isValid()) { QString text = index.data(Qt::UserRole).toString(); int textwidth = painter->fontMetrics().boundingRect(text).width(); painter->drawText(QPoint(option.rect.right() - textwidth - 5, option.rect.bottom()-5), text);; } //fixed if(index.data(Qt::UserRole + 1).isValid()) { QString text = index.data(Qt::UserRole + 1).toString(); painter->drawText(QPoint(200, option.rect.bottom()-5), text);; } painter->restore(); } };

    Now that theres more than one text, the other texts are stored in UserRoles

    //install delegate on the ListWidget ui->listWidget->setItemDelegate(new CustomListWidgetItemDelegate); QListWidgetItem * item = nullptr; for(int i = 0; i < 5; i++) { item = new QListWidgetItem("ListItem"); item->setData(Qt::UserRole, "Yep"); item->setData(Qt::UserRole + 1, "Maybe"); ui->listWidget->addItem(item); }
  • How to set the text wrapped in the tablewidgetitem?

    Unsolved
    2
    0 Votes
    2 Posts
    85 Views
    SGaistS

    Hi,

    It's on the view. Check setWordWrap.

  • How to catch Ctrl+C on a widget?

    12
    0 Votes
    12 Posts
    22k Views
    I

    Maybe it's because the toolbar of the software has shortcuts like ‘ctrl+c,ctrl+e’ or something like that, where you need to press ctrl+c first and then press other keys to make it work.

  • hints in .ui files?

    Unsolved
    6
    0 Votes
    6 Posts
    208 Views
    T

    Ah, thanks @Bonnie! That tool I didn't know yet. Thanks to @JonB too!

  • 0 Votes
    1 Posts
    64 Views
    No one has replied
  • 0 Votes
    5 Posts
    184 Views
    JoeCFDJ

    @haowong What @ChrisW67 pointed out is you are using Qt5 and Qt6 at the same time. Simply use Qt5 or Qt6, but not both.

  • Click event for QListWidgetItem

    Solved
    13
    0 Votes
    13 Posts
    396 Views
    S

    @shreya_agrawal

    It worked by installing the event filter on the table view of the calendar widget:

    ui->dateEdit->calendarWidget()->findChild<QTableView*>("qt_calendar_calendarview")->viewport()

  • how to change the color of title bar in mdi window

    Unsolved
    6
    0 Votes
    6 Posts
    3k Views
    IPlayGenji6I

    I don't know why

    QMdiSubWindow:title { background-color: green; }

    removes the icon.

    But this works perfectly.
    @Kogotoro said in how to change the color of title bar in mdi window:

    QMdiSubWindow{ selection-background-color: grey;/*for some styles it also used as title bar main gradient color...*/ }