qT: hotkeys systemweit
-
die doku hab ich schon gefunden, leider für mich grad nicht sehr hilfreich.
Ich arbeite noch nicht lange mit qt (wie man merkt) deshalb warscheinlich die Probleme.Leider konnte ich auch mit deinem Beispiel das Problem nicht lösen.
Ich hab jetzt mal ein komplett neues projekt gestartet, und nur das nötigste verpackt. Es passiert genau das selbe wie vorhin, die anwendung funktioniert nichtmehr, direkt nach start.mainwindow.h:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QtGui/QMainWindow> #include <QxtApplication> #include <QxtGlobalShortcut> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT QxtGlobalShortcut *m_action; public: MainWindow(QWidget *parent = 0); ~MainWindow(); public slots: void jump(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
mainwindow.cpp:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QxtApplication> #include <QxtGlobalShortcut> #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), m_action(new QxtGlobalShortcut(QKeySequence("Ctrl+Alt+A"))) { ui->setupUi(this); connect(m_action, SIGNAL(activated()), this, SLOT(jump())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::jump() { qDebug() << "Jump!"; }
Ich bekomme zwar diese warnings:
mainwindow.h: In constructor
MainWindow::MainWindow(QWidget*)': mainwindow.h:24: warning:
MainWindow::ui' will be initialized after
mainwindow.h:16: warning: `QxtGlobalShortcut*MainWindow::m_action'
mainwindow.cpp:8: warning: when initialized hereAber die dürften damit nichts zu tun haben oder?
Und gleich ne verständnisfrage:
Was bringt es das hier, m_action(newQxtGlobalShortcut(QKeySequence("Ctrl+Alt+A")))
an
Object(QObject* parent = 0) : QObject(parent)
zu hängen?
-
Hast du auch anstatt eines QApplication in main ein QxtApplication erstellt?
Und wegen der Frage:
Das nennt sich Elementinitialisierer. Ist nix spezielles Qt sondern C++. Schau in dein Lieblingsbuch
-
main.cpp
//#include <QtGui/QApplication> #include "mainwindow.h" #include <QxtApplication> int main(int argc, char *argv[]) { QxtApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
Ja. Hilft leider nichts, oder hab ich was vergessen?
Das nennt sich Elementinitialisierer. Ist nix spezielles Qt sondern C++.
Ahh ok Danke..
Schau in dein Lieblingsbuch
Hab leider kein Buch zu c++ hier, lediglich ein paar onlinebooks und tutorials zz., und da wurde das nicht erwähnt.
Kannst du mir ein gutes Buch empfehlen?
-
Ich kämpfe weiterhin mit diesem Problem, falls jemand eine idee hat, immer her damit....
-
Sollte irgendjemand mal kurz zeit haben und sich das anschauen, ich bin weiterhin an einer Lösung interessiert. Falls das so nicht funktioniert, auch gerne an einer Alternativen. Es würde reichen wenn es auf Windows funktioniert.