1.创建第一个Qt项目
2.命名规范和常用快捷键
类名 首字母大写,单词和单词之间 首字母大写 MyWidget
函数名、变量名。。。 首字母小写 单词和单词之间 首字母大写 saveFun() dataStr
成员变量 m_ + 单词 m_db
注:命名规则不是必须遵守,一切按照自己喜欢的方式来
常用快捷键
运行 ctrl + R
跳转函数定义 鼠标移到函数名 ctrl + 左键
帮助文档 F1 也可已使用Assistant
3.QPushbutton的使用
QPushbutton是qt中的按钮类,可以点击按钮触发信号槽函数
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
//btn1点击之后触发该函数
void Widget::on_pushButton_clicked()
{
qDebug() << "btn1 is clicked";
}
4.Qt中的信号和槽
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//连接槽函数
//connect(信号发送对象名,&类名::信号名,信号接收对象名,槽函数);
//匿名函数: [=]中=表示可以使用外部的变量,()函数参数列表这里需要与信号的参数保持一致
// {}函数体
connect(ui->pushButton_2,&QPushButton::clicked,this,[=](){
//最小化窗口
this->showMinimized();
});
}
Widget::~Widget()
{
delete ui;
}
//槽函数
void Widget::on_pushButton_clicked()
{
//关闭窗口
this->close();
}
5.QMessagebox对话框,一般用作提示窗口
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QMessageBox>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//连接槽函数
//connect(信号发送对象名,&类名::信号名,信号接收对象名,槽函数);
//匿名函数: [=]中=表示可以使用外部的变量,()函数参数列表这里需要与信号的参数保持一致
// {}函数体
connect(ui->pushButton_2,&QPushButton::clicked,this,[=](){
this->showMinimized();
});
}
Widget::~Widget()
{
delete ui;
}
//关闭窗口
void Widget::on_pushButton_clicked()
{
//auto表示自动匹配变量的类型
//information的参数
//父对象设置为this作用是当this关闭之前会自动释放messagebox的资源
//弹窗标题
//弹窗内容
//弹窗按钮,自动检测按下的按钮并在弹窗关闭时返回
auto res = QMessageBox::information(this,"提示","是否关闭窗口",QMessageBox::Yes|QMessageBox::No);
if(res == QMessageBox::Yes)
{
this->close();
}
else if(res == QMessageBox::No)
{
}
}
6.QTableWidget的基本使用(一)
/*widget.h*/
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
void InitObject();
void InitSlot();
private slots:
void on_pushButton_clicked();
void on_pushButton_3_clicked();
void on_pushButton_4_clicked();
void on_pushButton_5_clicked();
void on_pushButton_6_clicked();
private:
Ui::Widget *ui;
int rows,cols;
};
#endif // WIDGET_H
/*widget.cpp*/
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QMessageBox>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//设置无边框
// this->setWindowFlag(Qt::FramelessWindowHint);
//初始化对象
this->InitObject();
//连接信号槽
this->InitSlot();
}
Widget::~Widget()
{
delete ui;
}
void Widget::InitObject()
{
//设置初始行列数
ui->tableWidget->setColumnCount(5);
ui->tableWidget->setRowCount(5);
//更新行列数
rows = 5;
cols = 5;
}
void Widget::InitSlot()
{
//连接槽函数
//connect(信号发送对象名,&类名::信号名,信号接收对象名,槽函数);
//匿名函数: [=]中=表示可以使用外部的变量,()函数参数列表这里需要与信号的参数保持一致
// {}函数体
connect(ui->pushButton_2,&QPushButton::clicked,this,[=](){
this->showMinimized();
});
}
//关闭窗口
void Widget::on_pushButton_clicked()
{
//auto表示自动匹配变量的类型
auto res = QMessageBox::information(this,"提示","是否关闭窗口",QMessageBox::Yes|QMessageBox::No);
if(res == QMessageBox::Yes)
{
this->close();
}
else if(res == QMessageBox::No)
{
}
}
//添加一行
void Widget::on_pushButton_3_clicked()
{
//在当前行之后添加一行
int row = ui->tableWidget->currentRow();
ui->tableWidget->insertRow(row + 1);
rows++;
}
//删除当前行
void Widget::on_pushButton_4_clicked()
{
int row = ui->tableWidget->currentRow();
ui->tableWidget->removeRow(row);
rows--;
}
//删除所有行
void Widget::on_pushButton_5_clicked()
{
for (int row = 0; row < rows; row++)
{
ui->tableWidget->removeRow(0);
}
}
//清空
void Widget::on_pushButton_6_clicked()
{
for (int row = 0; row < rows; row++)
{
for (int col = 0; col < cols; col++)
{
ui->tableWidget->setItem(row,col,new QTableWidgetItem(""));
}
}
}