void App::initMenuBar() { /////////////////////////////////////////////////////////////////// // File Menu m_fileMenu = new QPopupMenu(); m_fileMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/filenew.png")), "&New", this, SLOT(slotFileNew()), CTRL+Key_N, ID_FILE_NEW); m_fileMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/fileopen.png")), "&Open...", this, SLOT(slotFileOpen()), CTRL+Key_O, ID_FILE_OPEN); m_fileMenu->insertSeparator(); m_fileMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/filesave.png")), "&Save", this, SLOT(slotFileSave()), CTRL+Key_S, ID_FILE_SAVE); m_fileMenu->insertItem("Save As...", this, SLOT(slotFileSaveAs()), 0, ID_FILE_SAVE_AS); m_fileMenu->insertSeparator(); m_fileMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/exit.png")), "E&xit", this, SLOT(slotFileQuit()), CTRL+Key_Q, ID_FILE_QUIT); /////////////////////////////////////////////////////////////////// // Window Menu m_windowMenu = new QPopupMenu(); connect(m_windowMenu, SIGNAL(aboutToShow()), this, SLOT(slotRefreshWindowMenu())); /////////////////////////////////////////////////////////////////// // Help menu m_helpMenu = new QPopupMenu(); m_helpMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/help.png")), "Index...", this, SLOT(slotHelpIndex()), SHIFT + Key_F1, ID_HELP_INDEX); m_helpMenu->insertSeparator(); m_helpMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/Q.png")), "About...", this, SLOT(slotHelpAbout()), 0, ID_HELP_ABOUT); m_helpMenu->insertItem("About Qt...", this, SLOT(slotHelpAboutQt()), 0, ID_HELP_ABOUT_QT); /////////////////////////////////////////////////////////////////// // Menubar configuration menuBar()->insertItem("File", m_fileMenu); menuBar()->insertItem("Window", m_windowMenu); menuBar()->insertSeparator(); menuBar()->insertItem("Help", m_helpMenu); menuBar()->setSeparator(QMenuBar::InWindowsStyle); }
int App::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QMainWindow::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: clipboardChanged(); break; case 1: slotFileNew(); break; case 2: slotFileOpen(); break; case 3: slotFileSave(); break; case 4: slotFileSaveAs(); break; case 5: slotFileQuit(); break; case 6: slotHelpIndex(); break; case 7: slotHelpAbout(); break; case 8: slotHelpAboutQt(); break; default: ; } _id -= 9; } return _id; }
QucsFilter::QucsFilter() { QWidget *centralWidget = new QWidget(this); setCentralWidget(centralWidget); // set application icon setWindowIcon(QPixmap(":/bitmaps/big.qucs.xpm")); setWindowTitle("Qucs Filter " PACKAGE_VERSION); // -------- create menubar ------------------- QMenu *fileMenu = new QMenu(tr("&File")); QAction * fileQuit = new QAction(tr("E&xit"), this); fileQuit->setShortcut(Qt::CTRL+Qt::Key_Q); connect(fileQuit, SIGNAL(activated()), SLOT(slotQuit())); fileMenu->addAction(fileQuit); QMenu *helpMenu = new QMenu(tr("&Help"), this); QAction * helpHelp = new QAction(tr("Help..."), this); helpHelp->setShortcut(Qt::Key_F1); connect(helpHelp, SIGNAL(activated()), SLOT(slotHelpIntro())); QAction * helpAbout = new QAction(tr("&About QucsFilter..."), this); helpMenu->addAction(helpAbout); connect(helpAbout, SIGNAL(activated()), SLOT(slotHelpAbout())); QAction * helpAboutQt = new QAction(tr("About Qt..."), this); helpMenu->addAction(helpAboutQt); connect(helpAboutQt, SIGNAL(activated()), SLOT(slotHelpAboutQt())); helpMenu->addAction(helpHelp); helpMenu->addSeparator(); helpMenu->addAction(helpAbout); helpMenu->addAction(helpAboutQt); menuBar()->addMenu(fileMenu); menuBar()->addSeparator(); menuBar()->addMenu(helpMenu); // ------- create main windows widgets -------- all = new QGridLayout(); all->setSpacing(3); // ........................................................... box1 = new QGroupBox(tr("Filter"), this); QHBoxLayout *hbox = new QHBoxLayout(); gbox1 = new QGridLayout(); gbox1->setSpacing(3); box1->setLayout(gbox1); QLabel *Label0 = new QLabel(tr("Realization:"), this); gbox1->addWidget(Label0, 0,0); ComboRealize = new QComboBox(this); ComboRealize->addItem("LC ladder (pi type)"); ComboRealize->addItem("LC ladder (tee type)"); ComboRealize->addItem("End coupled transmission lines"); ComboRealize->addItem("Parallel coupled transmission lines"); ComboRealize->addItem("Stepped-impedance"); ComboRealize->addItem("Quarter wave resonators"); ComboRealize->addItem("Quarter wave side coupled ring resonator"); ComboRealize->addItem("Capacitively coupled shunt resonators"); ComboRealize->addItem("Equation-defined"); gbox1->addWidget(ComboRealize, 0,1); connect(ComboRealize, SIGNAL(activated(int)), SLOT(slotRealizationChanged(int))); //Synthesize Microstrip MicrostripcheckBox=new QCheckBox("Microstrip implementation"); MicrostripcheckBox->setChecked(false); MicrostripcheckBox->setEnabled(false); gbox1->addWidget(MicrostripcheckBox, 1,0); connect(MicrostripcheckBox, SIGNAL(clicked()), SLOT(on_MicrostripcheckBox_clicked())); QLabel *Label1 = new QLabel(tr("Filter type:"), this); gbox1->addWidget(Label1, 2,0); ComboType = new QComboBox(this); ComboType->addItem("Bessel"); ComboType->addItem("Butterworth"); ComboType->addItem("Chebyshev"); ComboType->addItem("Cauer"); gbox1->addWidget(ComboType, 2,1); connect(ComboType, SIGNAL(activated(int)), SLOT(slotTypeChanged(int))); QLabel *Label2 = new QLabel(tr("Filter class:"), this); gbox1->addWidget(Label2, 3,0); ComboClass = new QComboBox(this); ComboClass->addItem(tr("Low pass")); ComboClass->addItem(tr("High pass")); ComboClass->addItem(tr("Band pass")); ComboClass->addItem(tr("Band stop")); gbox1->addWidget(ComboClass, 3,1); connect(ComboClass, SIGNAL(activated(int)), SLOT(slotClassChanged(int))); IntVal = new QIntValidator(1, 200, this); DoubleVal = new QDoubleValidator(this); LabelOrder = new QLabel(tr("Order:"), this); gbox1->addWidget(LabelOrder, 4,0); EditOrder = new QLineEdit("3", this); EditOrder->setValidator(IntVal); gbox1->addWidget(EditOrder, 4,1); LabelStart = new QLabel(tr("Corner frequency:"), this); gbox1->addWidget(LabelStart, 5,0); EditCorner = new QLineEdit("1", this); EditCorner->setValidator(DoubleVal); gbox1->addWidget(EditCorner, 5,1); ComboCorner = new QComboBox(this); ComboCorner->addItem("Hz"); ComboCorner->addItem("kHz"); ComboCorner->addItem("MHz"); ComboCorner->addItem("GHz"); ComboCorner->setCurrentIndex(3); gbox1->addWidget(ComboCorner, 5,2); LabelStop = new QLabel(tr("Stop frequency:"), this); gbox1->addWidget(LabelStop, 6,0); EditStop = new QLineEdit("2", this); EditStop->setValidator(DoubleVal); gbox1->addWidget(EditStop, 6,1); ComboStop = new QComboBox(this); ComboStop->addItem("Hz"); ComboStop->addItem("kHz"); ComboStop->addItem("MHz"); ComboStop->addItem("GHz"); ComboStop->setCurrentIndex(3); gbox1->addWidget(ComboStop, 6,2); LabelBandStop = new QLabel(tr("Stop band frequency:"), this); gbox1->addWidget(LabelBandStop, 7,0); EditBandStop = new QLineEdit("3", this); EditBandStop->setValidator(DoubleVal); gbox1->addWidget(EditBandStop, 7,1); ComboBandStop = new QComboBox(this); ComboBandStop->addItem("Hz"); ComboBandStop->addItem("kHz"); ComboBandStop->addItem("MHz"); ComboBandStop->addItem("GHz"); ComboBandStop->setCurrentIndex(3); gbox1->addWidget(ComboBandStop, 7,2); LabelRipple = new QLabel(tr("Pass band ripple:"), this); gbox1->addWidget(LabelRipple, 8,0); EditRipple = new QLineEdit("1", this); EditRipple->setValidator(DoubleVal); gbox1->addWidget(EditRipple, 8,1); LabelRipple_dB = new QLabel("dB", this); gbox1->addWidget(LabelRipple_dB, 8,2); LabelAtten = new QLabel(tr("Stop band attenuation:"), this); gbox1->addWidget(LabelAtten, 9,0); EditAtten = new QLineEdit("20", this); EditAtten->setValidator(DoubleVal); gbox1->addWidget(EditAtten, 9,1); LabelAtten_dB = new QLabel("dB", this); gbox1->addWidget(LabelAtten_dB, 9,2); LabelImpedance = new QLabel(tr("Impedance:"), this); gbox1->addWidget(LabelImpedance, 10,0); EditImpedance = new QLineEdit("50", this); EditImpedance->setValidator(DoubleVal); gbox1->addWidget(EditImpedance, 10,1); LabelOhm = new QLabel("Ohm", this); gbox1->addWidget(LabelOhm, 10,2); // ........................................................... box2 = new QGroupBox(tr("Microstrip Substrate"), this); box2->setEnabled(false); gbox2 = new QGridLayout(); gbox2->setSpacing(3); box2->setLayout(gbox2); QLabel *Label3 = new QLabel(tr("Relative permittivity:"), this); gbox2->addWidget(Label3, 0,0); ComboEr = new QComboBox(this); ComboEr->setEditable(true); ComboEr->lineEdit()->setValidator(DoubleVal); connect(ComboEr, SIGNAL(activated(const QString&)), SLOT(slotTakeEr(const QString&))); gbox2->addWidget(ComboEr, 0,1); const char **p = List_er; while(*(++p)) ComboEr->addItem(*p); // put material properties into combobox ComboEr->lineEdit()->setText("9.8"); QLabel *Label4 = new QLabel(tr("Substrate height:"), this); gbox2->addWidget(Label4, 1,0); EditHeight = new QLineEdit("1.0", this); EditHeight->setValidator(DoubleVal); gbox2->addWidget(EditHeight, 1,1); QLabel *Label5 = new QLabel("mm", this); gbox2->addWidget(Label5, 1,2); QLabel *Label6 = new QLabel(tr("metal thickness:"), this); gbox2->addWidget(Label6, 2,0); EditThickness = new QLineEdit("12.5", this); EditThickness->setValidator(DoubleVal); gbox2->addWidget(EditThickness, 2,1); QLabel *Label7 = new QLabel("um", this); gbox2->addWidget(Label7, 2,2); QLabel *Label8 = new QLabel(tr("minimum width:"), this); gbox2->addWidget(Label8, 3,0); EditMinWidth = new QLineEdit("0.4", this); EditMinWidth->setValidator(DoubleVal); gbox2->addWidget(EditMinWidth, 3,1); QLabel *Label9 = new QLabel("mm", this); gbox2->addWidget(Label9, 3,2); QLabel *Label10 = new QLabel(tr("maximum width:"), this); gbox2->addWidget(Label10, 4,0); EditMaxWidth = new QLineEdit("5.0", this); EditMaxWidth->setValidator(DoubleVal); gbox2->addWidget(EditMaxWidth, 4,1); QLabel *Label11 = new QLabel("mm", this); gbox2->addWidget(Label11, 4,2); QSpacerItem *mySpacer=new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding); gbox2->addItem(mySpacer, 5, 0, 1, -1); QSize sz; boxImage = new QGroupBox(tr("Preview"), this); gboxImage = new QGridLayout(); boxImage->setLayout(gboxImage); QString s1 = ":/bitmaps/LC_Ladder_Pi_LPF.svg"; imgLayout = new QSvgWidget(s1); sz = imgLayout->size(); imgLayout->setFixedSize(.5*sz); gboxImage->addWidget(imgLayout); // ........................................................... QVBoxLayout *vboxButtons = new QVBoxLayout(); QPushButton *ButtonGo = new QPushButton(tr("Calculate and put into Clipboard"), this); connect(ButtonGo, SIGNAL(clicked()), SLOT(slotCalculate())); vboxButtons->addWidget(ButtonGo); LabelResult = new QLabel(this); ResultState = 100; slotShowResult(); LabelResult->setAlignment(Qt::AlignHCenter); vboxButtons->addWidget(LabelResult); QVBoxLayout *vbox_all = new QVBoxLayout(); QVBoxLayout *vboxRealisation = new QVBoxLayout(); QVBoxLayout *vboxMicrostrip = new QVBoxLayout(); vboxRealisation->addWidget(box1); hbox->addLayout(vboxRealisation); vboxMicrostrip->addWidget(box2); vboxMicrostrip->addWidget(boxImage); hbox->addLayout(vboxMicrostrip); vbox_all->addLayout(hbox); vbox_all->addLayout(vboxButtons); centralWidget->setLayout(vbox_all); // ------- finally set initial state -------- slotTypeChanged(0); slotClassChanged(0); }
FilterDialog::FilterDialog (QWidget * parent) : QDialog (parent) { // set application icon ///setIcon (QPixmap(QucsSettings.BitmapDir + "big.qucs.xpm")); setCaption("Qucs Filter " PACKAGE_VERSION); all = new Q3VBoxLayout(this); // -------- create menubar ------------------- Q3PopupMenu *fileMenu = new Q3PopupMenu(); fileMenu->insertItem(tr("E&xit"), this, SLOT(slotQuit()), Qt::CTRL+Qt::Key_Q); Q3PopupMenu *helpMenu = new Q3PopupMenu(); helpMenu->insertItem( tr("&About Qucs Filter..."), this, SLOT(slotHelpAbout()), 0); helpMenu->insertItem(tr("About Qt..."), this, SLOT(slotHelpAboutQt()), 0); QMenuBar *bar = new QMenuBar(this); bar->insertItem(tr("&File"), fileMenu); bar->insertSeparator (); bar->insertItem(tr("&Help"), helpMenu); all->addWidget(bar); // reserve space for menubar all->addSpacing (bar->height() + 2); QTabWidget *t = new QTabWidget(this); all->addWidget(t); // ........................................................... QWidget *Tab1 = new QWidget(t); Q3GridLayout *gp1 = new Q3GridLayout(Tab1,12,6,5,5); FilterName = new QComboBox(FALSE, Tab1); gp1->addWidget(FilterName,0,0); TformName = new QComboBox(FALSE, Tab1); gp1->addWidget(TformName,0,1); OrderBox = new QCheckBox(tr("Specify order"), Tab1); gp1->addWidget(OrderBox,1,0); Q3HBox *h1 = new Q3HBox(Tab1); h1->setSpacing (5); OrderCombo = new QComboBox(FALSE, h1); OrderCombo->setEnabled(TRUE); SubOrderCombo = new QComboBox(FALSE, h1); SubOrderCombo->setEnabled(FALSE); SubOrderCombo->insertItem( tr( "b" ) ); SubOrderCombo->insertItem( tr( "c" ) ); gp1->addWidget(h1,1,1); CutoffLabel = new QLabel(tr("Cutoff/Center"),Tab1); gp1->addWidget(CutoffLabel,2,0); EnterCutoff = new QLineEdit(Tab1); gp1->addWidget(EnterCutoff,2,1); CutoffCombo = new QComboBox(Tab1); CutoffCombo->insertItem( tr( "Hz" ) ); CutoffCombo->insertItem( tr( "kHz" ) ); CutoffCombo->insertItem( tr( "MHz" ) ); CutoffCombo->insertItem( tr( "GHz" ) ); gp1->addWidget(CutoffCombo,2,2); RippleLabel = new QLabel(tr("Ripple"),Tab1); gp1->addWidget(RippleLabel,3,0); EnterRipple = new QLineEdit(Tab1); gp1->addWidget(EnterRipple,3,1); RippleUnitLabel = new QLabel(tr("dB"),Tab1); gp1->addWidget(RippleUnitLabel,3,2); AngleLabel = new QLabel(tr("Angle"),Tab1); gp1->addWidget(AngleLabel,3,3); EnterAngle = new QLineEdit(Tab1); gp1->addWidget(EnterAngle,3,4); AngleUnitLabel = new QLabel(tr("°"),Tab1); gp1->addWidget(AngleUnitLabel,3,5); ZinLabel = new QLabel(tr("Zin"),Tab1); gp1->addWidget(ZinLabel,7,0); EnterZin = new QLineEdit(Tab1); gp1->addWidget(EnterZin,7,1); OhmLabel = new QLabel(tr("Ohm"),Tab1); gp1->addWidget(OhmLabel,7,2); ZoutLabel = new QLabel(tr("Zout"),Tab1); ZoutLabel->setEnabled(false); gp1->addWidget(ZoutLabel,7,3); EnterZout = new QLineEdit(Tab1); gp1->addWidget(EnterZout,7,4); OhmLabel_2 = new QLabel(tr("Ohm"),Tab1); gp1->addWidget(OhmLabel_2,7,5); StopbandLabel = new QLabel(tr("Stopband corner"),Tab1); gp1->addWidget(StopbandLabel,5,0); EnterStopband = new QLineEdit(Tab1); gp1->addWidget(EnterStopband,5,1); StopbandCombo = new QComboBox(FALSE, Tab1); StopbandCombo->insertItem( tr( "Hz" ) ); StopbandCombo->insertItem( tr( "kHz" ) ); StopbandCombo->insertItem( tr( "MHz" ) ); StopbandCombo->insertItem( tr( "GHz" ) ); gp1->addWidget(StopbandCombo,5,2); BandwidthLabel = new QLabel(tr("Bandwidth"),Tab1); BandwidthLabel->setEnabled(FALSE); gp1->addWidget(BandwidthLabel,4,0); EnterBandwidth = new QLineEdit(Tab1); gp1->addWidget(EnterBandwidth,4,1); BandwidthCombo = new QComboBox(FALSE, Tab1); BandwidthCombo->setEnabled(FALSE); BandwidthCombo->insertItem( tr( "Hz" ) ); BandwidthCombo->insertItem( tr( "kHz" ) ); BandwidthCombo->insertItem( tr( "MHz" ) ); BandwidthCombo->insertItem( tr( "GHz" ) ); gp1->addWidget(BandwidthCombo,4,2); AttenuationLabel = new QLabel(tr("Attenuation"),Tab1); gp1->addWidget(AttenuationLabel,6,0); EnterAttenuation = new QLineEdit(Tab1); gp1->addWidget(EnterAttenuation,6,1); dBLabel = new QLabel(tr("dB"),Tab1); gp1->addWidget(dBLabel,6,2); DualBox = new QCheckBox(tr("dual"),Tab1); gp1->addMultiCellWidget(DualBox,8,8,0,2); CauerPoleBox = new QCheckBox(tr("Stopband is first pole"),Tab1); CauerPoleBox->setEnabled(FALSE); gp1->addMultiCellWidget(CauerPoleBox,9,9,0,2); OptimizeCauerBox = new QCheckBox(tr("Optimize cauer"),Tab1); OptimizeCauerBox->setEnabled(FALSE); gp1->addMultiCellWidget(OptimizeCauerBox,10,10,0,2); EqualInductorBox = new QCheckBox(tr("Equal inductors"),Tab1); EqualInductorBox->setEnabled(FALSE); gp1->addMultiCellWidget(EqualInductorBox,8,8,3,5); UseCrossBox = new QCheckBox(tr("+ rather than T"),Tab1); UseCrossBox->setEnabled(FALSE); gp1->addMultiCellWidget(UseCrossBox,9,9,3,5); Cboxes = new Q3VButtonGroup(tr("Optimize C"),Tab1); Cmin = new QRadioButton(tr("Cmin"),Cboxes); Cmax = new QRadioButton(tr("Cmax"),Cboxes); NoC = new QRadioButton(tr("noC"),Cboxes); gp1->addMultiCellWidget(Cboxes,11,11,0,2); Lboxes = new Q3VButtonGroup(tr("Optimize L"),Tab1); Lmin = new QRadioButton(tr("Lmin"),Lboxes); Lmax = new QRadioButton(tr("Lmax"),Lboxes); NoL = new QRadioButton(tr("noL"),Lboxes); gp1->addMultiCellWidget(Lboxes,11,11,3,5); t->addTab(Tab1, tr("LC Filters")); // ........................................................... QWidget *Tab2 = new QWidget(t); t->addTab(Tab2, tr("Microstrip Filters")); // ........................................................... QWidget *Tab3 = new QWidget(t); t->addTab(Tab3, tr("Active Filters")); // reserve space for vertical resizing all->addStretch(); // ........................................................... // buttons on the bottom of the dialog (independent of the TabWidget) Q3HBox *Butts = new Q3HBox(this); Butts->setSpacing(3); Butts->setMargin(3); all->addWidget(Butts); cancelButton = new QPushButton(tr("Exit"),Butts); okButton = new QPushButton(tr("Calculate"),Butts); okButton->setEnabled(FALSE); // signals and slots connections connect( cancelButton, SIGNAL( clicked() ), this, SLOT( reject() ) ); connect( okButton, SIGNAL( clicked() ), this, SLOT( accept() ) ); }
MyWidget::MyWidget( QWidget *parent, const char *name ) : QWidget( parent, name ) { setCaption("Color Codes"); // icons are handled differently on OSX #ifndef __APPLE__ setIcon(QPixmap(":/bitmaps/big.qucs.xpm")); #endif // -------- create menubar ------------------- QAction *fileExit = new QAction(tr("E&xit"), this); fileExit->setShortcut(Qt::CTRL+Qt::Key_Q); connect(fileExit, SIGNAL(activated()), qApp, SLOT(quit())); QMenu *fileMenu = new QMenu(tr("&File")); fileMenu->addAction(fileExit); QAction *help = new QAction(tr("Help..."), this); help->setShortcut(Qt::Key_F1); connect(help, SIGNAL(activated()), this, SLOT(slotHelpIntro())); QAction *about = new QAction(tr("&About ResistorCodes..."), this); connect(about, SIGNAL(activated()), this, SLOT(slotHelpAbout())); QAction *aboutQt = new QAction(tr("&About Qt..."), this); connect(aboutQt, SIGNAL(activated()), this, SLOT(slotHelpAboutQt())); QMenu *helpMenu = new QMenu(tr("&Help")); helpMenu->addAction(help); helpMenu->addAction(about); helpMenu->addSeparator(); helpMenu->addAction(aboutQt); QMenuBar *menuBar = new QMenuBar(this); menuBar->addMenu(fileMenu); menuBar->insertSeparator(); menuBar->addMenu(helpMenu); res= new QResistor(); //--------------------resistance displayin ui ---------------------------------// resBox = new MyResistanceBox (this); connect(res, SIGNAL(valueModified(QResistor*)),resBox,SLOT(update(QResistor*))); //-------------------color displaying ui---------------------------------------------// colorBox = new MyColorBox(this); connect(res, SIGNAL(valueModified(QResistor*)),colorBox,SLOT(update(QResistor*))); //-------------------paste the configuration to clipboard--------------------------------------------// connect(res, SIGNAL(valueModified(QResistor*)),this,SLOT(slotConfiguration())); //-------------------switching buttons ui--------------------------------------// QPushButton *calcColor = new QPushButton(QPixmap(":/bitmaps/next.png")," To Colors", this, "calcColor" ); connect(calcColor, SIGNAL(clicked()),this,SLOT(setResistanceValue())); QPushButton *calcResistance = new QPushButton(QPixmap(":/bitmaps/previous.png")," To Resistance", this, "calcResistance" ); connect(calcResistance, SIGNAL(clicked()),this,SLOT(setColorValue())); QPushButton *quit = new QPushButton( "Quit", this, "quit" ); connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) ); QHBoxLayout *buttonBox = new QHBoxLayout; buttonBox->addWidget(calcColor); buttonBox->addWidget(calcResistance); buttonBox->addWidget(quit); //--------------------packing all of them together---------------------------------------// QGridLayout *grid = new QGridLayout(this); grid->setMargin(10); #ifndef __APPLE__ QWidget *Space = new QWidget(this); // reserve space for menubar Space->setFixedSize(1, menuBar->height()); grid->addWidget(Space, 0,0); #endif grid->addWidget( resBox, 1, 0 ); grid->addLayout( buttonBox, 2, 0 ); grid->addWidget( colorBox, 3, 0 ); }
QucsFilter::QucsFilter() { // set application icon setIcon (QPixmap(QucsSettings.BitmapDir + "big.qucs.xpm")); setCaption("Qucs Filter " PACKAGE_VERSION); // -------- create menubar ------------------- QPopupMenu *fileMenu = new QPopupMenu(); fileMenu->insertItem(tr("E&xit"), this, SLOT(slotQuit()), CTRL+Key_Q); QPopupMenu *helpMenu = new QPopupMenu(); helpMenu->insertItem(tr("Help..."), this, SLOT(slotHelpIntro()), Key_F1); helpMenu->insertSeparator(); helpMenu->insertItem( tr("&About QucsFilter..."), this, SLOT(slotHelpAbout()), 0); helpMenu->insertItem(tr("About Qt..."), this, SLOT(slotHelpAboutQt()), 0); QMenuBar *bar = new QMenuBar(this); bar->insertItem(tr("&File"), fileMenu); bar->insertSeparator (); bar->insertItem(tr("&Help"), helpMenu); // ------- create main windows widgets -------- gbox = new QGridLayout(this, 10,3,5,5); QWidget *Space = new QWidget(this); // reserve space for menubar Space->setFixedSize(5, bar->height()); gbox->addWidget(Space, 0,0); QLabel *Label1 = new QLabel(tr("Filter type:"), this); gbox->addWidget(Label1, 1,0); ComboType = new QComboBox(this); ComboType->insertItem("Bessel"); ComboType->insertItem("Butterworth"); ComboType->insertItem("Chebyshev"); ComboType->insertItem("Cauer"); gbox->addWidget(ComboType, 1,1); connect(ComboType, SIGNAL(activated(int)), SLOT(slotTypeChanged(int))); QLabel *Label2 = new QLabel(tr("Filter class:"), this); gbox->addWidget(Label2, 2,0); ComboClass = new QComboBox(this); ComboClass->insertItem(tr("Low pass")); ComboClass->insertItem(tr("High pass")); ComboClass->insertItem(tr("Band pass")); ComboClass->insertItem(tr("Band stop")); gbox->addWidget(ComboClass, 2,1); connect(ComboClass, SIGNAL(activated(int)), SLOT(slotClassChanged(int))); IntVal = new QIntValidator(1, 200, this); DoubleVal = new QDoubleValidator(this); LabelOrder = new QLabel(tr("Order:"), this); gbox->addWidget(LabelOrder, 3,0); EditOrder = new QLineEdit("3", this); EditOrder->setValidator(IntVal); gbox->addWidget(EditOrder, 3,1); LabelStart = new QLabel(tr("Corner frequency:"), this); gbox->addWidget(LabelStart, 4,0); EditCorner = new QLineEdit("1", this); EditCorner->setValidator(DoubleVal); gbox->addWidget(EditCorner, 4,1); ComboCorner = new QComboBox(this); ComboCorner->insertItem("Hz"); ComboCorner->insertItem("kHz"); ComboCorner->insertItem("MHz"); ComboCorner->insertItem("GHz"); ComboCorner->setCurrentItem(3); gbox->addWidget(ComboCorner, 4,2); LabelStop = new QLabel(tr("Stop frequency:"), this); gbox->addWidget(LabelStop, 5,0); EditStop = new QLineEdit("2", this); EditStop->setValidator(DoubleVal); gbox->addWidget(EditStop, 5,1); ComboStop = new QComboBox(this); ComboStop->insertItem("Hz"); ComboStop->insertItem("kHz"); ComboStop->insertItem("MHz"); ComboStop->insertItem("GHz"); ComboStop->setCurrentItem(3); gbox->addWidget(ComboStop, 5,2); LabelBandStop = new QLabel(tr("Stop band frequency:"), this); gbox->addWidget(LabelBandStop, 6,0); EditBandStop = new QLineEdit("3", this); EditBandStop->setValidator(DoubleVal); gbox->addWidget(EditBandStop, 6,1); ComboBandStop = new QComboBox(this); ComboBandStop->insertItem("Hz"); ComboBandStop->insertItem("kHz"); ComboBandStop->insertItem("MHz"); ComboBandStop->insertItem("GHz"); ComboBandStop->setCurrentItem(3); gbox->addWidget(ComboBandStop, 6,2); LabelRipple = new QLabel(tr("Pass band ripple:"), this); gbox->addWidget(LabelRipple, 7,0); EditRipple = new QLineEdit("1", this); EditRipple->setValidator(DoubleVal); gbox->addWidget(EditRipple, 7,1); LabelRipple_dB = new QLabel("dB", this); gbox->addWidget(LabelRipple_dB, 7,2); LabelAtten = new QLabel(tr("Stop band attenuation:"), this); gbox->addWidget(LabelAtten, 8,0); EditAtten = new QLineEdit("20", this); EditAtten->setValidator(DoubleVal); gbox->addWidget(EditAtten, 8,1); LabelAtten_dB = new QLabel("dB", this); gbox->addWidget(LabelAtten_dB, 8,2); QLabel *Label9 = new QLabel(tr("Impedance:"), this); gbox->addWidget(Label9, 9,0); EditImpedance = new QLineEdit("50", this); EditImpedance->setValidator(DoubleVal); gbox->addWidget(EditImpedance, 9,1); QLabel *Label10 = new QLabel("Ohm", this); gbox->addWidget(Label10, 9,2); QPushButton *ButtonGo = new QPushButton(tr("Calculate and put into Clipboard"), this); connect(ButtonGo, SIGNAL(clicked()), SLOT(slotCalculate())); gbox->addMultiCellWidget(ButtonGo, 10,10,0,2); LabelResult = new QLabel(this); ResultState = 100; slotShowResult(); LabelResult->setAlignment(Qt::AlignHCenter); gbox->addMultiCellWidget(LabelResult, 11,11,0,2); // ------- finally set initial state -------- slotTypeChanged(0); slotClassChanged(0); }
// // Menu bar // void App::initMenuBar() { QString dir; settings()->get(KEY_SYSTEM_DIR, dir); dir += QString("/") + PIXMAPPATH; /////////////////////////////////////////////////////////////////// // File Menu m_fileMenu = new QPopupMenu(); m_fileMenu->insertItem(QPixmap(dir + QString("/filenew.xpm")), "&New", this, SLOT(slotFileNew()), CTRL+Key_N, ID_FILE_NEW); m_fileMenu->insertItem(QPixmap(dir + QString("/fileopen.xpm")), "&Open...", this, SLOT(slotFileOpen()), CTRL+Key_O, ID_FILE_OPEN); m_fileMenu->insertSeparator(); m_fileMenu->insertItem(QPixmap(dir + QString("/filesave.xpm")), "&Save", this, SLOT(slotFileSave()), CTRL+Key_S, ID_FILE_SAVE); m_fileMenu->insertItem("Save &As...", this, SLOT(slotFileSaveAs()), 0, ID_FILE_SAVE_AS); m_fileMenu->insertSeparator(); m_fileMenu->insertItem(QPixmap(dir + QString("/settings.xpm")), "Se&ttings...", this, SLOT(slotFileSettings()), 0, ID_FILE_SETTINGS); m_fileMenu->insertSeparator(); m_fileMenu->insertItem(QPixmap(dir + QString("/exit.xpm")), "E&xit", this, SLOT(slotFileQuit()), CTRL+Key_Q, ID_FILE_QUIT); connect(m_fileMenu, SIGNAL(aboutToShow()), this, SLOT(slotRefreshMenus())); /////////////////////////////////////////////////////////////////// // Tools Menu m_toolsMenu = new QPopupMenu(); m_toolsMenu->setCheckable(true); m_toolsMenu->insertItem(QPixmap(dir + QString("/device.xpm")), "Device Manager", this, SLOT(slotViewDeviceManager()), CTRL + Key_M, ID_VIEW_DEVICE_MANAGER); m_toolsMenu->insertItem(QPixmap(dir + QString("/virtualconsole.xpm")), "Virtual Console", this, SLOT(slotViewVirtualConsole()), CTRL + Key_V, ID_VIEW_VIRTUAL_CONSOLE); m_toolsMenu->insertSeparator(); m_toolsMenu->insertItem(QPixmap(dir + QString("/chaser.png")), "Function Manager", this, SLOT(slotViewFunctionTree()), CTRL + Key_F, ID_VIEW_FUNCTION_TREE); m_toolsMenu->insertItem(QPixmap(dir + QString("/bus.xpm")), "Bus Properties", this, SLOT(slotViewBusProperties()), CTRL + Key_B, ID_VIEW_BUS_PROPERTIES); m_toolsMenu->insertSeparator(); m_toolsMenu->insertItem(QPixmap(dir + QString("/panic.xpm")), "Panic!", this, SLOT(slotPanic()), CTRL + Key_P, ID_FUNCTIONS_PANIC); connect(m_toolsMenu, SIGNAL(aboutToShow()), this, SLOT(slotRefreshMenus())); //////////////////////////////////////////////////////////////////// // Mode menu m_modeMenu = new QPopupMenu(); m_modeMenu->setCheckable(true); m_modeMenu->insertItem(QPixmap(dir + QString("/unlocked.xpm")), "Design", this, SLOT(slotSetDesignMode()), CTRL + Key_D, ID_FUNCTIONS_MODE_DESIGN); m_modeMenu->insertItem(QPixmap(dir + QString("/locked.xpm")), "Operate", this, SLOT(slotSetOperateMode()), CTRL + Key_R, ID_FUNCTIONS_MODE_OPERATE); connect(m_modeMenu, SIGNAL(aboutToShow()), this, SLOT(slotRefreshMenus())); /////////////////////////////////////////////////////////////////// // Window Menu m_windowMenu = new QPopupMenu(); connect(m_windowMenu, SIGNAL(aboutToShow()), this, SLOT(slotRefreshMenus())); connect(m_windowMenu, SIGNAL(activated(int)), this, SLOT(slotWindowMenuCallback(int))); /////////////////////////////////////////////////////////////////// // Help menu m_helpMenu = new QPopupMenu(); m_helpMenu->setCheckable(true); m_helpMenu->insertItem(QPixmap(dir + QString("/help.xpm")), "Index...", this, SLOT(slotHelpIndex()), SHIFT + Key_F1, ID_HELP_INDEX); m_helpMenu->insertSeparator(); m_helpMenu->insertItem(QPixmap(dir + QString("/Q.xpm")), "About...", this, SLOT(slotHelpAbout()), 0, ID_HELP_ABOUT); m_helpMenu->insertItem(QPixmap(dir + QString("/qt.xpm")), "About Qt...", this, SLOT(slotHelpAboutQt()), 0, ID_HELP_ABOUT_QT); m_helpMenu->insertSeparator(); m_helpMenu->insertItem(QPixmap(dir + QString("")), "Show Tooltips", this, SLOT(slotHelpTooltips()), 0, ID_HELP_TOOLTIPS); /////////////////////////////////////////////////////////////////// // Menubar configuration menuBar()->insertItem("&File", m_fileMenu); menuBar()->insertItem("&Tools", m_toolsMenu); m_toolsMenu->insertItem("&Mode", m_modeMenu); menuBar()->insertItem("&Window", m_windowMenu); menuBar()->insertSeparator(); menuBar()->insertItem("&Help", m_helpMenu); menuBar()->setSeparator(QMenuBar::InWindowsStyle); }
QucsActiveFilter::QucsActiveFilter(QWidget *parent) : QMainWindow(parent) { Nfil = 4; Fc = 1000; ftyp = Filter::NoFilter; QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // -------- create menubar ------------------- QMenu *fileMenu = new QMenu(tr("&File")); QAction * fileQuit = new QAction(tr("E&xit"), this); fileQuit->setShortcut(Qt::CTRL+Qt::Key_Q); connect(fileQuit, SIGNAL(activated()), SLOT(close())); fileMenu->addAction(fileQuit); QMenu *helpMenu = new QMenu(tr("&Help"), this); QAction * helpHelp = new QAction(tr("Help..."), this); helpHelp->setShortcut(Qt::Key_F1); connect(helpHelp, SIGNAL(activated()), SLOT(slotHelpIntro())); QAction * helpAbout = new QAction(tr("&About QucsActiveFilter..."), this); helpMenu->addAction(helpAbout); connect(helpAbout, SIGNAL(activated()), SLOT(slotHelpAbout())); QAction * helpAboutQt = new QAction(tr("About Qt..."), this); helpMenu->addAction(helpAboutQt); connect(helpAboutQt, SIGNAL(activated()), SLOT(slotHelpAboutQt())); helpMenu->addAction(helpHelp); helpMenu->addSeparator(); helpMenu->addAction(helpAbout); helpMenu->addAction(helpAboutQt); menuBar()->addMenu(fileMenu); menuBar()->addSeparator(); menuBar()->addMenu(helpMenu); //lblInputData = new QLabel(tr("Входные данные")); lblA1 = new QLabel(tr("Passband attenuation, Ap (dB)")); lblA2 = new QLabel(tr("Stopband attenuation, As (dB)")); lblF1 = new QLabel(tr("Cuttof frequency, Fc (Hz)")); lblF2 = new QLabel(tr("Stopband frequency, Fs (Hz)")); lblRpl1 = new QLabel(tr("Passband ripple Rp(dB)")); //lblRpl2 = new QLabel(tr("Stopband ripple (dB)")); lblKv = new QLabel(tr("Passband gain, Kv (dB)")); edtA1 = new QLineEdit("3"); QDoubleValidator *val1 = new QDoubleValidator(0,100000,3); edtA1->setValidator(val1); edtA2 = new QLineEdit("20"); edtA2->setValidator(val1); edtF1 = new QLineEdit("1000"); edtF1->setValidator(val1); edtF2 = new QLineEdit("1200"); edtF2->setValidator(val1); edtPassbRpl = new QLineEdit("3"); edtPassbRpl->setValidator(val1); //edtStopbRpl = new QLineEdit("3"); //edtStopbRpl->setValidator(val1); edtKv = new QLineEdit("0"); edtKv->setValidator(val1); QIntValidator *val2 = new QIntValidator(2,20); lblOrder = new QLabel(tr("Filter order")); edtOrder = new QLineEdit("5"); edtOrder->setValidator(val2); lblTyp = new QLabel(tr("Approximation type:")); cbxFilterFunc = new QComboBox; QStringList lst2; lst2<<tr("Butterworth") <<tr("Chebyshev") <<tr("Inverse Chebyshev") <<tr("Cauer (Elliptic)") <<tr("Bessel") <<tr("User defined"); cbxFilterFunc->addItems(lst2); connect(cbxFilterFunc,SIGNAL(currentIndexChanged(int)),this,SLOT(slotSwitchParameters())); btnDefineTransferFunc = new QPushButton(tr("Manually define transfer function")); btnDefineTransferFunc->setEnabled(false); connect(btnDefineTransferFunc,SIGNAL(clicked()),this,SLOT(slotDefineTransferFunc())); btnCalcSchematic = new QPushButton(tr("Calculate and copy to clipboard")); connect(btnCalcSchematic,SIGNAL(clicked()),SLOT(slotCalcSchematic())); lblResult = new QLabel(tr("Calculation console")); txtResult = new QTextEdit; lblSch = new QLabel(tr("Filter topology")); lblResp = new QLabel(tr("Filter type:")); cbxResponse = new QComboBox; QStringList lst3; lst3<<tr("LowPass") <<tr("High Pass") <<tr("Band Pass") <<tr("Band Stop"); cbxResponse->addItems(lst3); connect(cbxResponse,SIGNAL(currentIndexChanged(int)),this,SLOT(slotUpdateResponse())); connect(cbxResponse,SIGNAL(currentIndexChanged(int)),this,SLOT(slotUpdateSchematic())); connect(cbxResponse,SIGNAL(currentIndexChanged(int)),this,SLOT(slotSetLabels())); connect(cbxResponse,SIGNAL(currentIndexChanged(int)),this,SLOT(slotSwitchParameters())); cbxFilterType = new QComboBox; QStringList lst; lst<<tr("Multifeedback (MFB)") <<tr("Sallen-Key (S-K)") <<tr("Cauer section"); //<<tr("Пассивный"); cbxFilterType->addItems(lst); connect(cbxFilterType,SIGNAL(currentIndexChanged(int)),this,SLOT(slotUpdateSchematic())); this->slotSwitchParameters(); cbxFilterType->setMaxCount(3); lblAFR = new QLabel(tr("General amplitude frequency response")); lblTopology = new QLabel(tr("Filter topology preview (one stage)")); QString s1 = ":/images/bitmaps/AFR.svg"; QSvgRenderer *ren = new QSvgRenderer(s1); QSize sz = ren->defaultSize(); sz *= 1.3; delete ren; imgAFR = new QSvgWidget(s1); imgAFR->setFixedSize(sz); imgAFR->show(); s1 = ":/images/bitmaps/cauer.svg"; ren = new QSvgRenderer(s1); sz = ren->defaultSize(); sz *= 0.65; delete ren; sch_pic = new QSvgWidget(s1); sch_pic->setFixedSize(sz); sch_pic->show(); this->slotUpdateSchematic(); top = new QHBoxLayout; left = new QVBoxLayout; center = new QVBoxLayout; right = new QHBoxLayout; //left->addWidget(lblInputData); QGroupBox *gpbPar = new QGroupBox(tr("Filter parameters")); QGridLayout *vl3 = new QGridLayout; vl3->setSpacing(3); vl3->addWidget(lblA1,0,0); vl3->addWidget(edtA1,0,1); vl3->addWidget(lblA2,1,0); vl3->addWidget(edtA2,1,1); vl3->addWidget(lblF1,2,0); vl3->addWidget(edtF1,2,1); vl3->addWidget(lblF2,3,0); vl3->addWidget(edtF2,3,1); vl3->addWidget(lblRpl1,4,0); vl3->addWidget(edtPassbRpl,4,1); vl3->addWidget(lblKv,5,0); vl3->addWidget(edtKv,5,1); vl3->addWidget(lblOrder,6,0); vl3->addWidget(edtOrder,6,1); left->addWidget(gpbPar); gpbPar->setLayout(vl3); QGroupBox *gpbFunc = new QGroupBox(tr("Transfer function and Topology")); QVBoxLayout *vl4 = new QVBoxLayout; QHBoxLayout *l3 = new QHBoxLayout; l3->addWidget(lblTyp); l3->addWidget(cbxFilterFunc); vl4->addLayout(l3); vl4->addWidget(btnDefineTransferFunc); QHBoxLayout *l1 = new QHBoxLayout; l1->addWidget(lblResp); l1->addWidget(cbxResponse); vl4->addLayout(l1); QHBoxLayout *l2 = new QHBoxLayout; l2->addWidget(lblSch); l2->addWidget(cbxFilterType); vl4->addLayout(l2); vl4->addWidget(btnCalcSchematic); gpbFunc->setLayout(vl4); left->addWidget(gpbFunc); left->addStretch(); QGroupBox *gpbAFR = new QGroupBox(tr("General filter amplidure-frequency response")); QVBoxLayout *vl1 = new QVBoxLayout; vl1->addWidget(imgAFR); gpbAFR->setLayout(vl1); right->addWidget(gpbAFR); QGroupBox *gpbSCH = new QGroupBox(tr("Filter topology preview")); QVBoxLayout *vl2 = new QVBoxLayout; vl2->addWidget(sch_pic); gpbSCH->setLayout(vl2); right->addWidget(gpbSCH); /*right->addWidget(lblAFR); right->addWidget(imgAFR); right->addWidget(lblTopology); right->addWidget(sch_pic); right->addStretch();*/ top->addLayout(left); top->addLayout(center); top->addLayout(right); top1 = new QVBoxLayout; top1->addLayout(top); QSplitter *sp1 = new QSplitter; top1->addWidget(sp1); txtResult->setReadOnly(true); QGroupBox *gpbCons = new QGroupBox(tr("Filter calculation console")); QVBoxLayout *vl5 = new QVBoxLayout; vl5->addWidget(txtResult); gpbCons->setLayout(vl5); top1->addWidget(gpbCons); txtResult->setMinimumHeight(180); zenter = new QWidget; this->setCentralWidget(zenter); zenter->setLayout(top1); }
void App::initMenuBar() { /////////////////////////////////////////////////////////////////// // File Menu m_fileMenu = new QPopupMenu(); m_fileMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/filenew.xpm")), "&New", this, SLOT(slotFileNew()), CTRL+Key_N, ID_FILE_NEW); m_fileMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/fileopen.xpm")), "&Open...", this, SLOT(slotFileOpen()), CTRL+Key_O, ID_FILE_OPEN); m_fileMenu->insertSeparator(); m_fileMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/filesave.xpm")), "&Save", this, SLOT(slotFileSave()), CTRL+Key_S, ID_FILE_SAVE); m_fileMenu->insertItem("Save As...", this, SLOT(slotFileSaveAs()), 0, ID_FILE_SAVE_AS); m_fileMenu->insertSeparator(); m_fileMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/exit.xpm")), "E&xit", this, SLOT(slotFileQuit()), CTRL+Key_Q, ID_FILE_QUIT); /////////////////////////////////////////////////////////////////// // Edit Menu m_editMenu = new QPopupMenu(); m_editMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/add.xpm")), "Add &Channel...", this, SLOT(slotEmpty()), CTRL+Key_C, ID_EDIT_ADD_CHANNEL); m_editMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/remove.xpm")), "&Remove Channel", this, SLOT(slotEmpty()), CTRL+Key_R, ID_EDIT_REMOVE_CHANNEL); m_editMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/edit.xpm")), "Edit C&hannel...", this, SLOT(slotEmpty()), CTRL+Key_H, ID_EDIT_CHANNEL); m_editMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/up.xpm")), "Raise Channel", this, SLOT(slotEmpty()), CTRL+Key_Up, ID_EDIT_RAISE_CHANNEL); m_editMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/down.xpm")), "Lower Channel", this, SLOT(slotEmpty()), CTRL+Key_Down, ID_EDIT_LOWER_CHANNEL); m_editMenu->insertSeparator(); m_editMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/add.xpm")), "&Add Capability...", this, SLOT(slotEmpty()), CTRL+Key_A, ID_EDIT_ADD_CAPABILITY); m_editMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/remove.xpm")), "R&emove Capability", this, SLOT(slotEmpty()), CTRL+Key_E, ID_EDIT_REMOVE_CAPABILITY); m_editMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/edit.xpm")), "Ed&it Capability...", this, SLOT(slotEmpty()), CTRL+Key_I, ID_EDIT_CAPABILITY); connect(m_editMenu, SIGNAL(activated(int)), this, SLOT(slotEditMenuActivated(int))); connect(m_editMenu, SIGNAL(aboutToShow()), this, SLOT(slotRefreshEditMenu())); /////////////////////////////////////////////////////////////////// // Window Menu m_windowMenu = new QPopupMenu(); connect(m_windowMenu, SIGNAL(aboutToShow()), this, SLOT(slotRefreshWindowMenu())); /////////////////////////////////////////////////////////////////// // Help menu m_helpMenu = new QPopupMenu(); m_helpMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/help.xpm")), "About...", this, SLOT(slotHelpAbout()), 0, ID_HELP_ABOUT); m_helpMenu->insertItem(QPixmap(QString(PIXMAPS) + QString("/qt.xpm")), "About Qt...", this, SLOT(slotHelpAboutQt()), 0, ID_HELP_ABOUT_QT); /////////////////////////////////////////////////////////////////// // Menubar configuration menuBar()->insertItem("File", m_fileMenu); menuBar()->insertItem("Edit", m_editMenu); menuBar()->insertItem("Window", m_windowMenu); menuBar()->insertSeparator(); menuBar()->insertItem("Help", m_helpMenu); menuBar()->setSeparator(QMenuBar::InWindowsStyle); }
void App::initMenuBar() { QString dir; settings()->get(KEY_SYSTEM_DIR, dir); dir += QString("/") + PIXMAPPATH; /////////////////////////////////////////////////////////////////// // File Menu m_fileMenu = new QPopupMenu(); m_fileMenu->insertItem(QPixmap(dir + QString("/filenew.xpm")), "&New", this, SLOT(slotFileNew()), CTRL+Key_N, ID_FILE_NEW); m_fileMenu->insertItem(QPixmap(dir + QString("/fileopen.xpm")), "&Open...", this, SLOT(slotFileOpen()), CTRL+Key_O, ID_FILE_OPEN); m_fileMenu->insertSeparator(); m_fileMenu->insertItem(QPixmap(dir + QString("/filesave.xpm")), "&Save", this, SLOT(slotFileSave()), CTRL+Key_S, ID_FILE_SAVE); m_fileMenu->insertItem("Save &As...", this, SLOT(slotFileSaveAs()), 0, ID_FILE_SAVE_AS); m_fileMenu->insertSeparator(); m_fileMenu->insertItem(QPixmap(dir + QString("/info.xpm")), "Se&ttings...", this, SLOT(slotFileSettings()), 0, ID_FILE_SETTINGS); m_fileMenu->insertSeparator(); m_fileMenu->insertItem(QPixmap(dir + QString("/exit.xpm")), "E&xit", this, SLOT(slotFileQuit()), CTRL+Key_Q, ID_FILE_QUIT); /////////////////////////////////////////////////////////////////// // View Menu m_toolsMenu = new QPopupMenu(); m_toolsMenu->setCheckable(true); m_toolsMenu->insertItem(QPixmap(dir + QString("/device.xpm")), "Device Manager", this, SLOT(slotViewDeviceManager()), CTRL + Key_D, ID_VIEW_DEVICE_MANAGER); m_toolsMenu->insertItem(QPixmap(dir + QString("/virtualconsole.xpm")), "Virtual Console", this, SLOT(slotViewVirtualConsole()), CTRL + Key_G, ID_VIEW_VIRTUAL_CONSOLE); m_toolsMenu->insertSeparator(); m_toolsMenu->insertItem(QPixmap(dir + QString("/deviceclasseditor.xpm")), "Device Class Editor", this, SLOT(slotViewDeviceClassEditor()), CTRL + Key_E, ID_VIEW_DEVICE_CLASS_EDITOR); m_toolsMenu->insertItem(QPixmap(dir + QString("/function.xpm")), "Function Tree", this, SLOT(slotViewFunctionTree()), CTRL + Key_F, ID_VIEW_FUNCTION_TREE); m_toolsMenu->insertSeparator(); m_toolsMenu->insertItem(QPixmap(dir + QString("/panic.xpm")), "Panic!", this, SLOT(slotPanic()), CTRL + Key_C, ID_FUNCTIONS_PANIC); connect(m_toolsMenu, SIGNAL(aboutToShow()), this, SLOT(slotRefreshToolsMenu())); /////////////////////////////////////////////////////////////////// // Window Menu m_windowMenu = new QPopupMenu(); connect(m_windowMenu, SIGNAL(aboutToShow()), this, SLOT(slotRefreshWindowMenu())); /////////////////////////////////////////////////////////////////// // Help menu m_helpMenu = new QPopupMenu(); m_helpMenu->insertItem(QPixmap(dir + QString("/help.xpm")), "About...", this, SLOT(slotHelpAbout()), 0, ID_HELP_ABOUT); m_helpMenu->insertItem(QPixmap(dir + QString("/qt.xpm")), "About Qt...", this, SLOT(slotHelpAboutQt()), 0, ID_HELP_ABOUT_QT); /////////////////////////////////////////////////////////////////// // Menubar configuration menuBar()->insertItem("&File", m_fileMenu); menuBar()->insertItem("&Tools", m_toolsMenu); menuBar()->insertItem("&Window", m_windowMenu); menuBar()->insertSeparator(); menuBar()->insertItem("&Help", m_helpMenu); menuBar()->setSeparator(QMenuBar::InWindowsStyle); }