QT程序基本框架
#include "mywidget.h"
#include <QApplication>// 包含一个应用程序类的头文件
//main程序入口 argc命令行变量的数量 argv命令行变量的数组
int main(int argc, char *argv[])
{
//a应用程序对象,在Qt中,应用程序对象 有且仅有一个
QApplication a(argc, argv);
//窗口对象 myWidget父类 -> QWidget
myWidget w;
//窗口对象 默认不会显示,必须要调用show方法显示窗口
w.show();
//让应用程序对象进入消息循环
//当代码阻塞到这行
return a.exec();
}
常用快捷键
注释 ctrl + /
运行 ctrl + r
编译 ctrl + b
字体缩放 ctrl + 鼠标滚轮
查找 ctrl + f
整行移动 ctrl + shift + ↑ 或者↓
帮助文档 F1
自动对齐 ctrl + i;
- 同名之间的.h 和 .cpp切换 F4
-
窗口
-
重置窗口大小
-
resize(600,400);
设定窗口固定大小
-
setFixedSize(600,400);
设置窗口标题
-
setWindowTitle("第一个窗口");
按钮
创建按钮
QPushButton * btn = new QPushButton;
展示按钮
如需要上面创建的按钮依附在主窗口上,需要把新创建按钮的父类设为主窗口
btn->setParent(this);
或者直接在新窗口中显示创建的按钮
btn->show();
显示按钮文本
btn->setText("第一个按钮");
移动按钮
btn->move(100,100);
重设按钮大小
btn->resize(50,50);
创建一个按钮类
mypushbutton.h
#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H
#include <QPushButton>
class MyPushButton : public QPushButton
{
Q_OBJECT
public:
explicit MyPushButton(QWidget *parent = 0);
~MyPushButton();
signals:
public slots:
};
#endif // MYPUSHBUTTON_H
mypushbutton.cpp
#include "mypushbutton.h"
#include <QDebug>
MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
{
qDebug() << "我的按钮类构造调用";
}
MyPushButton::~MyPushButton()
{
qDebug() << "我的按钮类析构";
}
创建并展示自定义按钮类
MyPushButton * myBtn = new MyPushButton;
myBtn->setText("我自己的按钮");
连接按钮
参数1:信号发送者
参数2:发送的信号(函数的地址)
参数3:信号的接受者
参数4:处理的槽函数
//这里实现点击按钮关闭窗口的功能
connect( myBtn, &QPushButton::clicked, this, &QWidget::close);
菜单栏
创建菜单栏
//最多只能有一个菜单栏
QMenuBar * bar = menuBar();
将菜单栏放到窗口中
setMenuBar(bar);
在菜单栏中加入菜单
QMenu * fileMenu = bar->addMenu("文件");
QMenu * editMenu = bar->addMenu("编辑");
创建菜单项
QAction * newAction = fileMenu->addAction("新建");
添加分割线
fileMenu->addSeparator();
工具栏
创建工具栏
//工具栏可以有多个
QToolBar * toolBar = new QToolBar(this);
addToolBar(Qt::LeftToolBarArea,toolBar);
设置靠停方式
//这里设置只允许左右靠停
toolBar->setAllowedAreas( Qt::LeftToolBarArea | Qt::RightToolBarArea );
设置浮动
toolBar->setFloatable(false);
设置移动(总开关)
toolBar->setMovable(false);
工具栏中可以添加内容(按钮)
toolBar->addAction(newAction);
添加分割线
toolBar->addSeparator();
向工具栏中添加控件
QPushButton * btn = new QPushButton("aa" , this);
toolBar->addWidget(btn);
状态栏
添加状态栏
//最多有一个状态栏
QStatusBar * stBar = statusBar();
把状态栏放到窗口中
setStatusBar(stBar);
放标签控件
QLabel * label = new QLabel("提示信息",this);
stBar->addWidget(label);
QLabel * label2 = new QLabel("右侧提示信息",this);
stBar->addPermanentWidget(label2);
创建浮动窗口
//浮动窗口可以有多个
QDockWidget * dockWidget = new QDockWidget("浮动",this);
addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
设置停靠区域
//这里只允许上下停靠
dockWidget->setAllowedAreas( Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea );
设置中心部件
//中心部件只允许有一个
QTextEdit * edit = new QTextEdit(this);
setCentralWidget(edit);