这是第五波控件。
其中,qtButton.h的程序为:
#ifndef QTBUTTON_H
#define QTBUTTON_H
#include <QtWidgets/QMainWindow>
#include "ui_qtbutton.h"
//-------------------------------
#include<qtabwidget.h>
#include<qmenu.h>
#include<qmenubar.h>
#include<qaction.h>
#include<qtoolbar.h>
class qtButton : public QMainWindow
{
Q_OBJECT
public:
qtButton(QWidget *parent = 0);
~qtButton();
private:
Ui::qtButtonClass ui;
//---------------------------------
QTabWidget *tabWidget;
//-----------QMenu和QToolBar控件------------
QMenu *fileMenu, *editMenu, *helpMenu;
QToolBar *fileToolBar, *editToolBar;
QAction *newAct;
QAction *cutAct;
QAction *copyAct;
QAction *pasteAct;
QAction *aboutQtAct;
private slots:
//-----------QMenu和QToolBar控件------------
void newFile();
};
#endif // QTBUTTON_H
//--------------------TabWidget-------------
class tabA :public QWidget
{
Q_OBJECT
public:
tabA(QWidget *parent = 0);
};
class tabB :public QWidget
{
Q_OBJECT
public:
tabB(QWidget *parent = 0);
};
再者,qtButton.cpp中程序为
#include "qtbutton.h"
//-----------TabWidget--------------------
#include<qwidget.h>
#include<qpushbutton.h>
//-----------QMenu和QToolBar控件------------
#include<qmessagebox.h>
qtButton::qtButton(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
//------------TabWidget-----------
tabWidget = new QTabWidget(this);
tabWidget->setGeometry(QRect(30,80, 340, 140));
tabWidget->addTab(new tabA, "A Part");
tabWidget->addTab(new tabB, "B Part");
//-----------QMenu和QToolBar控件------------
fileMenu = new QMenu(this);
editMenu = new QMenu(this);
helpMenu = new QMenu(this);
newAct = new QAction(QIcon(":/images/E:/testpictures/meizi.jpg"), tr("new"), this);
newAct->setShortcut(tr("Ctrl+N"));
newAct->setStatusTip(tr("new file"));
connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
cutAct = new QAction(QIcon(":/images/E:/testpictures/meizi2.jpg"), tr("cut"), this);
cutAct->setShortcut(tr("Ctrl+X"));
cutAct->setStatusTip(tr("cut content"));
copyAct = new QAction(QIcon(":/images/E:/testpictures/meizi3.jpg"), tr("copy"), this);
copyAct->setShortcut(tr("Ctrl+C"));
copyAct->setStatusTip(tr("copy content"));
pasteAct = new QAction(QIcon(":/images/E:/testpictures/meizi4.jpg"), tr("paste"), this);
pasteAct->setShortcut(tr("Ctrl+V"));
pasteAct->setStatusTip(tr("Paste content"));
aboutQtAct = new QAction(tr("About Qt"), this);
aboutQtAct->setStatusTip(tr("about Qt infomation"));
connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));//triggered 触发的
//填充菜单
fileMenu = menuBar()->addMenu(tr("File"));
fileMenu->addAction(newAct);
fileMenu->addSeparator();
editMenu = menuBar()->addMenu(tr("Edit"));
editMenu->addAction(cutAct);
editMenu->addAction(copyAct);
editMenu->addAction(pasteAct);
editMenu->addSeparator();
helpMenu = menuBar()->addMenu(tr("Help"));
helpMenu->addAction(aboutQtAct);
//toolBar工具条
fileToolBar = addToolBar(tr("new"));
fileToolBar->addAction(newAct);
editToolBar = addToolBar(tr("edit"));
editToolBar->addAction(cutAct);
editToolBar->addAction(copyAct);
editToolBar->addAction(pasteAct);
}
qtButton::~qtButton()
{
}
//------------TabWidget-------------------------------
tabA::tabA(QWidget *parent) :QWidget(parent)
{
QPushButton *buttonA = new QPushButton(this);
buttonA->setText("Page A");
}
tabB::tabB(QWidget *parent) :QWidget(parent)
{
QPushButton *buttonB = new QPushButton(this);
buttonB->setText("Page B");
}
//-----------QMenu和QToolBar控件------------
void qtButton::newFile(){
QMessageBox::warning(this, tr("Warning"),
tr("create new file ?"),
QMessageBox::Yes | QMessageBox::Default,
QMessageBox::No);
}
运行结果为: