首页 > 其他分享 >QT基础01

QT基础01

时间:2023-03-02 22:31:32浏览次数:38  
标签:01 QT 对话框 基础 信号 QTreeWidgetItem ui QMessageBox include

创建按钮的一些操作,

QT基础01_List



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

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

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

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

QT基础01_List_02

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

QT基础01_List_03


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

QT基础01_#include_04

断开信号使用下面函数

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

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

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

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

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


Lambda表达式

QT基础01_List_05

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

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

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

;


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

QT基础01_List_06



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

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

QT基础01_模态_07

QT基础01_模态_08


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

QT基础01_#include_09


模态与非模态对话框创建

QT基础01_#include_10


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

QT基础01_List_11


其他标准对话框

QT基础01_List_12

#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_模态_13

QT基础01_#include_14


Tree widget的使用

QT基础01_List_15

 

        //设置水平头
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);

标签:01,QT,对话框,基础,信号,QTreeWidgetItem,ui,QMessageBox,include
From: https://blog.51cto.com/u_15525394/6096819

相关文章

  • python爬虫-xpath基础
    #准备一个html格式文档doc='''<div><ul><liclass="item-0"><ahref="https://ask.hellobi.com/link1.html">firstitem</a></li><liclas......
  • pat乙级 1019 数字黑洞
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>voiddecline(inta[]){inttemp=0;for(inti=0;i<3;i++){......
  • Data Shapley : 机器学习数据的公平估值 ICML2019 斯坦福大学
    本篇论文的贡献提供了在机器学习中公平地评估数据的一个公式,利用博弈论提出了数据的Shapley值来量化单个数据点对学习任务的贡献。DataShapley唯一地满足公平估值的三个自......
  • 网络基础
    网络基础通信-安全的基础网络通信--搭建一个安全的公司局域网通信设备厂商:思科华为华三锐捷主讲华为目前中国市场占有率,60~70%四个阶段计网介绍路由技术交......
  • 课堂练习01题目:计算最长英语单词链
    大家经常玩成语接龙游戏,我们试一试英语的接龙吧:一个文本文件中有N个不同的英语单词,我们能否写一个程序,快速找出最长的能首尾相连的英语单词链,每个单词最多只能用一次。最......
  • Moqui构建基础
    Moqui可以使用gradle和ant构建整个项目,moqui在下列开源软件上构建:Groovy:是一种基于JVM(Java虚拟机)的敏捷开发语言,moqui的主要开发语言,也用了java。FreeMarker:是一个用Java语......
  • Qt关于moveToThread
    描述:问题最近使用moveToThread函数时遇到一个bug,主线程中创建一个类对象,一个新线程,并把类对象移到新线程中,采用的是新建此类,在建线程,接着线程启动。此时会遇到一个问题......
  • pat乙级 1018 锤子 剪刀 布
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>intmax(inta,intb){returna>b?a:b;}intmain(){intn;scanf("%d"......
  • ptyhon基础课程_4
    16循环语句1.while语句的格式:“while条件:”whileTrue:#循环输出"你好,世界"print("你好,世界")content=1#通过循环,让content每次循环+2whileTrue......
  • QT 使用QSetting读取配置文件中的中文乱码
    转载:https://www.shuzhiduo.com/A/kmzL3jjKdG/windows下方案:读配置文件之前添加以下语句:settings.setIniCodec(QTextCodec::codecForName("UTF-8"));//在此添加编码格式......