2016-06-14 4 views
0

Ich habe einige QActions in meiner QToolBar. QAction hat keine Stylesheets, daher versuche ich das QAction-Icon beim Maus-Hover zu ändern. wie kann ich das QAction Symbol auf Maus schwebenWie ändere ich das Symbol einer QAction Qt bei Mausüberlauf in QToolBar Element in Qt?

+0

Ich dachte, dass QAction ein 'hover()' Signal hatte, das Sie an – infixed

+0

anschließen konnten Thankou. Es funktioniert, aber wenn wir den Mauszeiger von dieser Aktion entfernen, erscheint ein neues Symbol (Mauszeiger-Symbol erscheint). Wie können wir das lösen? –

+0

@RishabhBansal zeigen Sie bitte den Code, der teilweise für Sie arbeitet. – maxik

Antwort

0

Um das Symbol auf Maus schweben ändern Sie diferent pixmaps ändern für diferent Zustände Ihres QIcon, mit setPixmap einstellen()

Siehe hier http://doc.qt.io/qt-5/qicon.html#pixmap

Wenn Ihr Aktion wird in QtCreator oder QtDesigner erstellt haben, können Sie es in den Eigenschaften im Eigenschaftsmenü ändern windowIcon

ich eine Aktion in QToolBar haben, die auf Zustandsänderungen abhängig, so habe ich eine QIcon und einen QPixmap im Konstruktor, so:

MainConfigWindow::MainConfigWindow(QWidget *parent) :   
    QMainWindow(parent), 
    icoDisconnected(QIcon(":/icons/connect_128.png")), 
    pixmapDisconnected(QPixmap(":/icons/disconnect_128.png")) 
    { 
     ui->setupUi(this); 
     icoConnected.addPixmap(pixmapDisconnected,QIcon::Selected,QIcon::On); 
     icoConnected.addPixmap(pixmapDisconnected,QIcon::Selected,QIcon::Off); 
     icoConnected.addPixmap(pixmapDisconnected,QIcon::Active,QIcon::On); 
     icoConnected.addPixmap(pixmapDisconnected,QIcon::Active,QIcon::Off); 
    }