QT基础01

时间:2021-04-21 00:41:15

创建按钮的一些操作,

QT基础01



自定义信号和槽,只需自己创建.h和.cpp 返回值都是void

信号只需声明不需要实现 可以有参 可以重载

槽必须声明必须实现,可以有参,可以重载

当槽和信号出现重载,需要利用函数指针明确指向函数地址

QT基础01

char*就不显示双引号 QString会显示,所以我们需要将其转换 .toUtf8()是QByteArray中的函数,可以在帮助菜单中寻找使用方法。

QT基础01


信号连接信号和信号连接槽

QT基础01

断开信号使用下面函数

//断开信号
disconnect(tea,teacherSignal2,stu,studentSlot2);

一个信号可以连接多个槽函数(比如上面,点击按钮可以请吃饭,也可以退出程序)

多个信号也可以连接一个槽函数

信号和槽函数参数类型 必须一一对应(同为无参或有参)

信号和槽函数个数可以不一样,信号参数个数可以多于槽函数。


Lambda表达式

QT基础01

一般都是添加=号(值传递),&使用较少(引用传递) ()参数 {}实现体 

mutable修饰值传递变量,可以修改拷贝出的数据,改变不了本体。

改变返回值int ret=[]()->int{ return 100 } ;

;


可以实现在一个连接中加入多个操作

QT基础01



菜单栏创建基础操作 ,菜单栏只有一个

可以创建多个的都是add开头(工具栏,铆接部件),只有一个的是set开头(中心部件,菜单栏)

QT基础01

QT基础01


资源文件的添加 添加图片标志,可以选择绝对路径,也可以先将文件加载到qt中然后使用。1. 将文件加载到qt中需要先在.cpp中在explorer中显示 然后将图片拷贝进去 2.在主文件中创建qt resource类。 3.在资源中添加这些图片

QT基础01


模态与非模态对话框创建

QT基础01


消息对话框 QMessageBox是静态成员函数

QT基础01


其他标准对话框

QT基础01

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDialog>
#include <QDebug>
#include <QMessageBox>
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
resize(1200,800);
// setFixedSize(1200,800);
//点击新建按钮,弹出对话框
connect(ui->actionnew,&QAction::triggered,[=](){
//对话框分为模态对话框(不可以对其他窗口进行操作) ,非模态对话框(可以对其他窗口进行操作)
//模态创建
// QDialog dlg(this);
// dlg.resize(600,400);
// dlg.exec();
// qDebug()<<"模态对话框弹出了";

//非模态创建
// QDialog * dlg2=new QDialog(this);
// dlg2->resize(600,400);
// dlg2->show();
// dlg2->setAttribute(Qt::WA_DeleteOnClose);//55号属性 每点完一次删除一次 防止内存泄露
// qDebug()<<"非模态对话框弹出";

//消息对话框
//错误对话框
// QMessageBox::critical(this,"critical","错误");
//信息对话框
// QMessageBox::information(this,"info","信息");
//提问对话框
//参数1 父亲 参数2 标题 参数3 提示内容 参数4 案件类型 参数5 默认关联回车案按键
// if(QMessageBox::Save == QMessageBox::question(this,"ques","提问",QMessageBox::Save |QMessageBox::Cancel,QMessageBox::Cancel))
// {
// qDebug()<<"保存";
// }
// else
// {
// qDebug()<<"取消";
// }
//waring对话框

//其他标准对话框
//颜色对话框
// QColor color=QColorDialog::getColor(QColor(255,0,0));
// qDebug()<<"r= "<<color.red()<<"g="<<color.green()<<"b="<<color.blue();

//文件对话框 参数1 父亲 参数2 标题 参数3 默认打开路径 参数4 过滤文件格式
// QString str=QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\子文\\Desktop","(*.txt)");
// qDebug() << str;

//字体对话框
bool flag;
QFontDialog::getFont(&flag,QFont("华文彩云",36));

});
}

MainWindow::~MainWindow()
{
delete ui;
}


登录窗口布局

QT基础01

QT基础01


Tree widget的使用

QT基础01

 

        //设置水平头
ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");

QTreeWidgetItem *litem=new QTreeWidgetItem(QStringList()<<"力量");
QTreeWidgetItem *mintem=new QTreeWidgetItem(QStringList()<<"敏捷");
QTreeWidgetItem *zhitem=new QTreeWidgetItem(QStringList()<<"智慧");
//加载顶点节点
ui->treeWidget->addTopLevelItem(litem);
ui->treeWidget->addTopLevelItem(mintem);
ui->treeWidget->addTopLevelItem(zhitem);


//追加子节点
QStringList heroL1;
heroL1<<"小火龙"<<"可以使用喷火和撞击";
QTreeWidgetItem *l1=new QTreeWidgetItem(heroL1);
litem->addChild(l1);