Qt学习(五)新建窗口

建立一个最简单的窗口

(方法一)

1.建立好如下文件。

Qt学习(五)新建窗口_第1张图片

2.在main.cpp中添加如下代码。

#include 

int main(int argc,char *argv[]) //主函数入口,编译器将会从这里开始启动程序
{
    QApplication a(argc,argv);  //启动Qt的应用程序,相当于初始化Qt的框架
    QWidget w;                  //QWidget类是所有用户界面对象的基类
    w.resize(400,300);          //设置界面宽为400像素,高为300像素
    w.show();                   //展示界面
    return a.exec();            //程序在a的事件循环里执行
}

3.编译运行即可看到如下结果。

Qt学习(五)新建窗口_第2张图片

 

(方法二)

1.在方法一基础上 新建一个名为mainwindow的.h  和.c文件。

Qt学习(五)新建窗口_第3张图片

2.在mainwindow.h文件中添加如下代码。

#ifndef MAINWINDOW
#define MAINWINDOW

class CMainWindow:public QWidget    //CMainWindow继承自QWidget
{
    Q_OBJECT    //这个宏非常重要,有此宏才具有使用信号槽的能力
public:
    CMainWindow(QWidget *parent = 0);  //声明构造函数
    ~CMainWindow();    //声明析构函数
protected:
    void createUi();    //用于创建ui界面
protected slots:
    void slotButtonDown();    //响应按钮的槽
protected:
    QPushButton *p_button;
    int m_index;   
};

3.在mainwindow.cpp中添加如下代码。

#include "mainwindow.h"

CMainWindow::CMainWindow(QWidget *parent):QWidget(parent)  //构造函数,一个对象被实例化时会先进入构造函数
{
    m_index = 0;
    createUi();    //调用创建界面函数
}
CMainWindow::~CMainWindow()    //析构函数,一个类对象被删除时,进入析构函数
{


}
void CMainWindow::createUi()   //创建界面函数
{
    QVBoxLayout *layout= new QVBoxLayout();    //添加一个竖向自动布局
    p_button = new QPushButton(this);
    p_button->setText(QString::fromLocal8Bit("点我"));    //QString::fromLocal8Bit("中文"),否则会乱码
    connect(p_button,SIGNAL(released()),this,SLOT(slotButtonDown())); //信号与槽

    layout->addWidget(p_button);    //添加一个按钮进入布局管理器
    this->setLayout(layout);    //将布局管理器设置到当前控件

}
void CMainWindow::slotButtonDown()  //槽函数
{
    QString str = QString::fromLocal8Bit("点我 %1").arg(m_index++);//arg括号里面的参数会依次替换前面的 %1
    p_button->setText(str);
}

3.编译运行可以看到如下结果。

Qt学习(五)新建窗口_第4张图片Qt学习(五)新建窗口_第5张图片(点击鼠标4次后松开的结果)

你可能感兴趣的:(Qt学习(五)新建窗口)