A personalized menu written using qt to mimic cool music Box

Source: Internet
Author: User

Nothing to do, found cool music box tray pop-up menu has a personality, so it is written according to the original, material and so on from the Internet, for everyone to learn, mainly its first item for a widget, and qt menu items for qaction, And this qaction does not inherit from Qwidget, and later found that there is a qwidgetaction, here can add their own widgets, the key to implement a createwidget () virtual function.

650) this.width=650; "src=" http://s3.51cto.com/wyfs02/M00/55/46/wKiom1SJXx-B4w77AABUFRB_sAM546.jpg "title=" effect as above " alt= "Wkiom1sjxx-b4w77aabufrb_sam546.jpg"/>

Menu Initialization Void qmenutest::contentmenuinit () {m_pcontentmenu = new qmenu (this); Q_assert (M_pcontentmenu); Subcontrolaction* pcontrolaction = new subcontrolaction (m_pContentMenu); m_pContentMenu- >addaction (pcontrolaction); M_pcontentmenu->addseparator (); Qmenu* pmodelmenu = new qmenu (M_pcontentmenu);p modelmenu->addaction (tr ("single play")); Pmodelmenu->addaction (TR ("single Loop"));p modelmenu->addaction (tr ("Sequential Play"));p modelmenu->addaction (tr ("Loop Play")) ;p modelmenu->addaction (TR ("Random Play"));p Modelmenu->seticon (Qicon (":/res/resources/model.png");p modelmenu- >settitle (TR ("Play Mode")); M_pcontentmenu->addmenu (Pmodelmenu); M_pcontentmenu->addaction (tr ("Show Desktop lyrics"); m_ Pcontentmenu->addaction (tr ("Show Music Tree")), M_pcontentmenu->addaction (Qicon (tr (":/res/resources/setting.png")), TR ("set")), M_pcontentmenu->addaction (Qicon (tr (":/res/resources/exit.png")), tr ("Exit")); Subcontrolaction inherits Qwidgetaction, the following is the. H file #ifndef subcontrolaction_h#define&nbSp subcontrolaction_h#include <qwidgetaction> #include   "MenuSubControl.h" class  Subcontrolaction : public qwidgetaction{q_objectpublic:subcontrolaction (QObject *parent); ~ Subcontrolaction ();p rotected:qwidget* createwidget (qwidget* parent);p rivate:menusubcontrol* m_ Psubcontrol;}; #endif  // subcontrolaction_h


Subcontrolaction. Cpp#include "StdAfx.h" #include "SubControlAction.h" Subcontrolaction::subcontrolaction (qobject *parent): qwidgetaction (parent) {}subcontrolaction::~subcontrolaction () {}qwidget* Subcontrolaction::createwidget ( qwidget* parent) {M_psubcontrol = new Menusubcontrol (parent); Q_assert (M_psubcontrol); return M_psubcontrol;} #ifndef menusubcontrol_h#define menusubcontrol_h#include <QWidget> #include "ui_menusubcontrol.h" class Menusubcontrol:public Qwidget{q_objectpublic:menusubcontrol (Qwidget *parent = 0); ~menusubcontrol ();p Rivate:ui:: Menusubcontrol UI;}; #endif//Menusubcontrol_h

#include "StdAfx.h"

#include "MenuSubControl.h"


Menusubcontrol::menusubcontrol (Qwidget *parent)

: Qwidget (parent)

{

UI.SETUPUI (this);

QFile f (":/qss/subcontrol_qss");

F.open (qiodevice::readonly);

Setstylesheet (F.readall ());

}


Menusubcontrol::~menusubcontrol ()

{


}

Ui

650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M01/55/46/wKiom1SJYbzTNf3IAABzNUnzYcQ065.jpg "title=" Qq20141211171929.png "alt=" Wkiom1sjybztnf3iaabznunzycq065.jpg "/>


Style sheet

Qmenu {

Background-color:white;

border:1px solid Gray;

Border-style:outset;

border-radius:2px;

padding:2px;

Color:black;

}


Qmenu::item {

padding:2px 25px 2px 20px;

border:1px solid Transparent; /* Reserve space for selection border */

}


qmenu::item:selected {

Background:rgba (85, 85, 255, 150);

}


qmenu::icon:checked {/* appearance of a ' checked ' icon */

Background:gray;

border:1px inset Gray;

Position:absolute;

top:1px;

right:1px;

bottom:1px;

left:1px;

}


Qmenu::separator {

height:1px;

Background:gray;

margin-left:10px;

margin-right:5px;

}


Qmenu::indicator {

width:13px;

height:13px;

}


qpushbutton#btn_switch{

Background-color:white;

Border-image:url (:/res/resources/play.png);

min-height:32px;

min-width:32px;

}


qpushbutton#btn_switch:pressed{

Border-image:url (:/res/resources/pause.png);

}


qpushbutton#btn_up{

Background-color:white;

Border-image:url (:/res/resources/step_forward.png);

height:24px;

width:24px;

}


qpushbutton#btn_next{

Background-color:white;

Border-image:url (:/res/resources/step_next.png);

height:24px;

width:24px;

}


A personalized menu written with qt imitation cool music Box

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.