[Interest] QPushButton shortcut works on Qt 4 but not 5

Mark Gaiser markg85 at gmail.com
Sun May 8 12:11:42 CEST 2016


On Sat, May 7, 2016 at 6:43 PM, Elvis Stansvik <elvstone at gmail.com> wrote:

> 2016-05-07 16:56 GMT+02:00 Mark Gaiser <markg85 at gmail.com>:
> > On Sat, May 7, 2016 at 3:44 PM, Elvis Stansvik <elvstone at gmail.com>
> wrote:
> >>
> >> 2016-05-07 15:27 GMT+02:00 Elvis Stansvik <elvstone at gmail.com>:
> >> > Hi all,
> >> >
> >> > Maybe I'm doing something completely wrong, but on Qt 4.8.7, this
> >> > works (pressing Ctrl+O prints "clicked"):
> >> >
> >> > test.cpp:
> >> >
> >> > #include <QApplication>
> >> > #include <QMainWindow>
> >> > #include <QPushButton>
> >> > #include <QWidget>
> >> > #include <QDebug>
> >> >
> >> > class MainWindow : public QMainWindow {
> >> >     Q_OBJECT
> >> >
> >> > public:
> >> >     MainWindow(QWidget *parent = 0) : QMainWindow(parent) {
> >> >         QPushButton *button = new QPushButton("Click Me (Ctrl+O)");
> >> >         button->setShortcut(QString("Ctrl+O"));
> >> >         connect(button, SIGNAL(clicked()), this, SLOT(onClicked()));
> >> >
> >> >         setCentralWidget(button);
> >> >     }
> >> >
> >> > public slots:
> >> >     void onClicked() {
> >> >         qDebug() << "clicked";
> >> >     }
> >> > };
> >> >
> >> > int main(int argc, char *argv[]) {
> >> >     QApplication app(argc, argv);
> >> >
> >> >     MainWindow window;
> >> >     window.show();
> >> >
> >> >     return app.exec();
> >> > }
> >> >
> >> > #include "moc_test.cpp"
> >> >
> >> > but on Qt 5.6.0 it does not (nothing printed on Ctrl+O).
> >>
> >> I just tested on a couple of other machines (Qt 5.2.1 and Qt 5.5.1),
> >> and it worked on both of them. So something broke in Qt 5.6.0? Or Arch
> >> somehow broke my Qt?
> >>
> >> If anyone else is under KDE on Arch and could give it a try, I would
> >> much appreciate it.
> >>
> > can you try to rule out plasma and it's default key bindings. There might
> > very well be a Ctrl+O global key binding in there.
> >
> > Install openbox on your system en logon (via sddm) in an openbox session.
> > Then try your app and see if it works.
> >
> > If that does work then plasma is probably taking that global shortcut.
> If it
> > doesn't then the issue is quite a bit deeper.
>
> Ah, good idea. I can confirm that it works under Openbox.
>
> So now the question is why Plasma (KWin?) seems to swallow a lot of
> shortcuts.
>
> Looking at System Settings -> Shortcuts I can confirm that Ctrl+O is
> bound to "Open..." under Standard Shortcuts. But I don't understand
> why something like that is done by Plasma, isn't that an application
> thing?
>
> I also can't get Qt::Key_F2 to work with the above example (it was
> actually the function keys I was mostly interested in), and that is
> not bound to anything under System Settings -> Shortcuts.
>
> Anyway, I guess it's not a Qt issue, so sorry for being off-topic. But
> if anyone knows what might be going on I'm idle ears.
>
>
Ah great, you found the real issue: Plasma :)
now you could try the same on plasma again only with kwin killed.

If that fixes your issue then you know for sure that kwin is doing
something you don't want and are probably best off by describing a minimal
case that kwin breaks and post that in the plasma development mailing list (
plasma-devel at kde.org) to further nail down the issue.



> Elvis
>
> >
> >
> >>
> >> Elvis
> >>
> >> >
> >> > test.pro for building:
> >> >
> >> > TEMPLATE = app
> >> > greaterThan(QT_MAJOR_VERSION, 4):QT += widgets
> >> > TARGET = test
> >> > INCLUDEPATH += .
> >> >
> >> > # Input
> >> > SOURCES += test.cpp
> >> > HEADERS += test.cpp
> >> >
> >> > Any ideas what may be going wrong? My window manager (KWin) is not
> >> > intercepting Ctrl+O (obviously). And besides, it doesn't seem to
> >> > matter which shortcut I use.
> >> >
> >> > Thanks in advance,
> >> > Elvis
> >> _______________________________________________
> >> Interest mailing list
> >> Interest at qt-project.org
> >> http://lists.qt-project.org/mailman/listinfo/interest
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160508/8565af6b/attachment.html>


More information about the Interest mailing list