QT学习笔记4

顶层窗口-MainWindow

  新建项目,选择基类的时Base Class是QMainWindow

   最上面是Window Title,用于显示标题和控制按钮,比如最大化、最小化和关闭等;下面一些是Menu Bar,用于显示菜单;再下面一点事Toolbar areas,用于显示工具条,注意,Qt的主窗口支持多个工具条显示,因此这里是ares,你可以把几个工具条并排显示在这里,就像Word2003一样;工具条下面是Dock window areas,这是停靠窗口的显示区域,所谓停靠窗口就是像Photoshop的工具箱一样,可以在主窗口的四周显示;再向下是Status Bar,就是状态栏;中间最大的Central widget就是主要的工作区了。

QAction *openAction;

  

    openAction=new QAction(tr("Open"),this);
    openAction->setShortcut(QKeySequence::Open);
    openAction->setStatusTip(tr("Open a file."));
    
    QMenu* file=menuBar()->addMenu(tr("&File"));
    file->addAction(openAction);
    QToolBar *toolBar=addToolBar(tr("&File"));
    toolBar->addAction(openAction);
    

上述程序新建了一个菜单和一个工具栏,并为菜单和工具栏各自添加了一个按钮。

菜单QMenu*,通过menuBar()->addMenu(tr("&File"));获得

工具栏QToolBar *通过addToolBar(tr("&File"));获得

并为菜单和工具栏各自添加了一个按钮。 都是 file->addAction toolBar->addAction也就是添加响应。

运行结果如下图。

QT学习笔记4

添加图标:

openAction->setIcon(QIcon("H:\for home\learningQT\11\Open.png"));

一句话搞定,而且可以直接将图片PNG转换为图标,方便快捷。

信号槽响应:

    private slots:
        void open();





QObject::connect(openAction,SIGNAL(triggered()),this,SLOT(open()));
    

void MainWindow::open()
{
    QMessageBox::information(NULL,tr("Open"),tr("open file"));
}

运行结果:

QT学习笔记4

状态栏:

    msgLabel=new QLabel();
    msgLabel->setMinimumSize(msgLabel->sizeHint());
    msgLabel->setAlignment(Qt::AlignHCenter);

    statusBar()->addWidget(msgLabel);
    statusBar()->setStyleSheet(QString("QStatusBar::item{border: 0px}"));

状态栏是statusBar(),可以加入label进行显示,并设置好label的大小和位置即可。

openAction->setStatusTip(tr("Open a file."));这句话是点在动作上,状态栏会显示响应的状态!结果如下:

QT学习笔记4