Qt应用程序设计(二):窗口与部件

2023-11-04

一:部件基类继承表

二:窗口部件QWidget

1、窗口与子部件

       窗口部件(Widget)简称部件,是Qt中建立用户界面的主要元素。像主窗口,对话框,标签,按钮,文本输入框等都是窗口部件。这些部件可以接受用户输入,显示数据和状态信息,并且在屏幕上绘制自己。有些也可以作为一个容器来放置其他部件。Qt中把没有嵌入到其他部件中的部件称为窗口,一般窗口都是有边框和标题栏,像下面程序中的widget和label一样。QMainWindow和大量的QDialog子类是最一般的窗口类型。窗口就是没有父部件的部件,所以又称为顶部部件。与其相对的是非窗口部件,又称为子部件。在Qt中大部分部件被用作子部件,嵌入在别的窗口中,如下面程序中的label2。

(1)新建对象,参数parent为0时表示其为一个窗口

    // 新建QWidget类对象,默认parent参数是0,所以它是个窗口
    QWidget *widget = new QWidget();
    widget->setWindowTitle(QObject::tr("我是widget"));

    // 新建QLabel对象,默认parent参数是0,所以它是个窗口
    QLabel *label = new QLabel();
    label->setWindowTitle(QObject::tr("我是label"));
    label->setText(QObject::tr("label:我是个窗口"));

(2)新建对象指定了参数parent为其父窗口,表示为一个子部件

    QLabel *label2 = new QLabel(widget);
    label2->setText(QObject::tr("label2:我不是独立窗口,只是widget的子部件"));

(3)释放已申请的空间,作为子部件label2,只需要释放其父对象widget即可

    delete label;
    delete widget;

2、窗口类型

QWidget::QWidget(QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())

QWidget构造函数有两个参数,第一个参数parent指父窗口部件,默认值为0,表示没有父窗口;第二个参数f是Qt::WindowsFlags类型,是Qt::WindowType枚举类型值或组合。Qt::WindowType枚举类型用来为部件指定各种窗口的系统属性,比如根据上表f=0表明窗口类型的值为Qt::Widget。

举例:

QWidget *widget = new QWidget(0, Qt::Dialog | Qt::FramelessWindowHint);

新建一个widget窗口,parent为0表示它是一个独立部件,但它的属性Qt::Dialog将它转换为一个对话框,并Qt::FramelessWindowHint属性用来产生一个没有边框的窗口。

3、窗口布局

在Qt帮助索引Window and Dialog Widgets中有如下示意图:

窗口布局函数分为两类,其一包含框架,另一种不包含框架。

包含框架:x(), y(), frameGeometry(), pos(), and move().

不包含框架:geometry(), width(), height(), rect(), and size().

示例:

    QWidget widget;
    widget.resize(400, 300);       // 设置窗口大小
    widget.move(200, 100);         // 设置窗口位置
    widget.setWindowTitle("窗口布局");
    widget.show();
    int x = widget.x();
    qDebug("x: %d", x);            // 输出x的值
    int y = widget.y();
    qDebug("y: %d", y);
    QRect geometry = widget.geometry();
    QRect frame = widget.frameGeometry();
    qDebug() << "geometry: " << geometry << "frame: " << frame;

三:对话框QDialog

1、模态和非模态对话框

       QDialog类是所有对话框窗口类的基类。对话框窗口是一个经常用来完成短小任务或者和用户进行简单交互的顶层窗口。按照运行对话框时是否还可以和该程序的其他窗口进行交互,对话框常被分为两类:模态和非模态。

MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MyWidget)
{
    ui->setupUi(this);
    if(1)
    {
        QDialog dialog(this);
        dialog.show();
    }
    else
    {
        QDialog *dialog = new QDialog(this);
        dialog->show();
    }
}

       执行if条件内的程序会发现一个窗口一闪而过,最后只剩下MyWidget窗口,这是因为dialog变量属于构造函数,当该函数执行结束后,dialog就会被释放掉。为了避免窗口一闪而过,可以使用指针操作,定义一个指向Qdialog类对象的指针变量,如else条件内的代码。另外,该指针对象无须使用delet来释放,因为指定了其父窗口,所以当父窗口结束时,该指针变量也会被释放。

       else条件内的程序执行后会同时出现widget和dialog窗口,并且可以进行交互,这种称之为非模态对话框。

QDialog *dialog = new QDialog(this);
dialog->setModal(true);
dialog->show();

        修改如下程序即可成为模态对话框,即在关闭当前的对话框之前不能与其他对话框进行交互。在if条件中使用exec()函数同样可以实现模态对话框。只是显示效果不一样,只有关闭当前窗口,其他窗口才会显示出来。

2、多窗口切换

main.cpp:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    MyDialog dialog;                        // 新建MyDialog类对象
    if(dialog.exec()==QDialog::Accepted){   // 判断dialog执行结果
        w.show();              // 如果是按下了“进入主界面”按钮,则显示主界面
        return a.exec();                    // 程序正常运行
    }
    else return 0;                          // 否则,退出程序
}

dialog.cpp:
void MyDialog::on_pushButton_clicked()
{
    accept();
}

widget.cc:
void MyWidget::on_showChildButton_clicked()
{
    QDialog *dialog = new QDialog(this);
    dialog->show();
}

void MyWidget::on_pushButton_clicked()
{
    // 先关闭主界面,其实它是隐藏起来了,并没有真正退出。然后新建MyDialog对象
    close();
    MyDialog dlg;
    // 如果按下了“进入主窗口”按钮,则再次显示主界面
    // 否则,因为现在已经没有显示的界面了,所以程序将退出
    if(dlg.exec() == QDialog::Accepted) show();
}

上述accept()函数是QDialog类中的一个槽,对于一个使用exec()函数实现的模态对话框,执行了这个槽就会隐藏这个模态对话框,并返回QDialog::Accepted值,这里就是要使用这个值来判断是哪个按钮被按下。

3,标准对话框

(1)颜色对话框

// 颜色对话框
void MyWidget::on_pushButton_clicked()
{
    //QColor color = QColorDialog::getColor(Qt::red, this, tr("颜色对话框"),
                                              QColorDialog::ShowAlphaChannel);

    QColorDialog dialog(Qt::red, this);                // 创建对象
    dialog.setOption(QColorDialog::ShowAlphaChannel); // 显示alpha选项
    dialog.exec();                                    // 以模态方式运行对话框
    QColor color = dialog.currentColor();             // 获取当前颜色
    qDebug() << "color: " << color;
}

(2)文件对话框

// 文件对话框
void MyWidget::on_pushButton_2_clicked()
{
    //    QString fileName = QFileDialog::getOpenFileName(this, tr("文件对话框"),
    //                             "D:", tr("图片文件(*png *jpg);;文本文件(*txt)"));

    //    qDebug() << "fileName:" << fileName;

    QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("文件对话框"),
                                                          "D:", tr("图片文件(*png *jpg)"));
    qDebug()<< "fileNames:" << fileNames;
}

(3)字体对话框

// 字体对话框
void MyWidget::on_pushButton_3_clicked()
{
    // ok用于标记是否按下了“OK”按钮
    bool ok;
    QFont font = QFontDialog::getFont(&ok, this);
    // 如果按下“OK”按钮,那么让“字体对话框”按钮使用新字体
    // 如果按下“Cancel”按钮,那么输出信息
    if (ok) ui->pushButton_3->setFont(font);
    else qDebug() << tr("没有选择字体!");
}

(4)输入对话框

// 输入对话框
void MyWidget::on_pushButton_4_clicked()
{
    bool ok;
    // 获取字符串
    QString string = QInputDialog::getText(this, tr("输入字符串对话框"),
                                           tr("请输入用户名:"), QLineEdit::Normal,tr("admin"), &ok);
    if(ok) qDebug() << "string:" << string;
    // 获取整数
    int value1 = QInputDialog::getInt(this, tr("输入整数对话框"),
                                      tr("请输入-1000到1000之间的数值"), 100, -1000, 1000, 10, &ok);
    if(ok) qDebug() << "value1:" << value1;
    // 获取浮点数
    double value2 = QInputDialog::getDouble(this, tr("输入浮点数对话框"),
                                            tr("请输入-1000到1000之间的数值"), 0.00, -1000, 1000, 2, &ok);
    if(ok) qDebug() << "value2:" << value2;
    QStringList items;
    items << tr("条目1") << tr("条目2");
    // 获取条目
    QString item = QInputDialog::getItem(this, tr("输入条目对话框"),
                                         tr("请选择或输入一个条目"), items, 0, true, &ok);
    if(ok) qDebug() << "item:" << item;
}

(5)消息对话框

// 消息对话框
void MyWidget::on_pushButton_5_clicked()
{
    // 问题对话框
    int ret1 = QMessageBox::question(this, tr("问题对话框"),
                                     tr("你了解Qt吗?"), QMessageBox::Yes, QMessageBox::No);
    if(ret1 == QMessageBox::Yes) qDebug() << tr("问题!");
    // 提示对话框
    int ret2 = QMessageBox::information(this, tr("提示对话框"),
                                        tr("这是Qt书籍!"), QMessageBox::Ok);
    if(ret2 == QMessageBox::Ok) qDebug() << tr("提示!");
    // 警告对话框
    int ret3 = QMessageBox::warning(this, tr("警告对话框"),
                                    tr("不能提前结束!"), QMessageBox::Abort);
    if(ret3 == QMessageBox::Abort) qDebug() << tr("警告!");
    // 错误对话框
    int ret4 = QMessageBox::critical(this, tr("严重错误对话框"),
                                     tr("发现一个严重错误!现在要关闭所有文件!"), QMessageBox::YesAll);
    if(ret4 == QMessageBox::YesAll) qDebug() << tr("错误");
    // 关于对话框
    QMessageBox::about(this, tr("关于对话框"),
                       tr("yafeilinux致力于Qt及Qt Creator的普及工作!"));
}

(6)进度对话框

// 进度对话框
void MyWidget::on_pushButton_6_clicked()
{
    QProgressDialog dialog(tr("文件复制进度"), tr("取消"), 0, 50000, this);
    dialog.setWindowTitle(tr("进度对话框"));     // 设置窗口标题
    dialog.setWindowModality(Qt::WindowModal);  // 将对话框设置为模态
    dialog.show();
    for(int i=0; i<50000; i++) {                // 演示复制进度
        dialog.setValue(i);                     // 设置进度条的当前值
        QCoreApplication::processEvents();      // 避免界面冻结
        if(dialog.wasCanceled()) break;         // 按下取消按钮则中断
    }
    dialog.setValue(50000);    // 这样才能显示100%,因为for循环中少加了一个数
    qDebug() << tr("复制结束!");
}

(7)向导对话框

private:
    Ui::MyWidget *ui;
    QErrorMessage *errordlg;

    QWizardPage *createPage1();        // 新添加
    QWizardPage *createPage2();        // 新添加
    QWizardPage *createPage3();        // 新添加
QWizardPage * MyWidget::createPage1()  // 向导页面1
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("介绍"));
    return page;
}
QWizardPage * MyWidget::createPage2()  // 向导页面2
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("用户选择信息"));
    return page;
}
QWizardPage * MyWidget::createPage3()  // 向导页面3
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("结束"));
    return page;
}

// 向导对话框
void MyWidget::on_pushButton_8_clicked()
{
    QWizard wizard(this);
    wizard.setWindowTitle(tr("向导对话框"));
    wizard.addPage(createPage1());     // 添加向导页面
    wizard.addPage(createPage2());
    wizard.addPage(createPage3());
    wizard.exec();
}

四:其他窗口部件

1,QFrame类族

       QFrame类是带有边框的部件的基类,带边框部件最主要的特点就是可以有一个明显的框架。QFrame类的主要功能就是用来实现不同的边框效果,这主要是由边框形状(Shape)和边框阴影(Shadow)组合来形成的。

    ui->frame->setFrameShape(QFrame::Box);
    ui->frame->setFrameShadow(QFrame::Sunken);
    // 以上两个函数可以使用setFrameStyle(QFrame::Box | QFrame::Sunken)代替
    ui->frame->setLineWidth(5);
    ui->frame->setMidLineWidth(10);

(1)QLabel

标签QLable部件用来显示文本和图片

设置字体:

    QFont font;
    font.setFamily("华文行楷");
    font.setPointSize(20);
    font.setBold(true);
    font.setItalic(true);
    ui->label->setFont(font);

    QString string = tr("标题太长,需要进行省略!");
    QString str = ui->label->fontMetrics().elidedText(string, Qt::ElideRight, 180);
    ui->label->setText(str);

设置图片:

#include <QPixmap>

ui->label->setPixmap(QPixmap("D:/WorkSpace/QtCreator/src/03/3-8/logo.png"));

设置动图:

#include <QMovie>
  
QMovie *movie = new QMovie("D:/WorkSpace/QtCreator/src/03/3-8/donghua.gif");
ui->label->setMovie(movie);                  // 在标签中添加动画
movie->start();

(2)QLCDNumber

可以让数码字符显示类似液晶数字一样的效果,详细可查询帮助文档

(3)QStackedWidget

该类提供了一个部件栈,可以有多个界面,每个界面可以拥有自己的部件,不过每次只能显示一个界面。这个部件需要使用QComboBox或者QListWidget来选择它的各个页面。在信号与槽设计模式中将两个部件关联。

(4)QToolBox

该类提供了一列层叠窗口部件,就像常用的聊天工具中的抽屉效果。

2、按钮部件

        QAbstractButton类是按钮部件的抽象基类,提供了按钮的通用功能。它的子类包括复选框QCheckBox,标准按钮QPushButton,单选框按钮QRadioButton和工具按钮QToolButton

(1)QPushButton

按键框“选中”用法:

void MyWidget::on_pushBtn1_toggled(bool checked)
{
    qDebug() << tr("按钮是否按下:") << checked;
}

快捷键用法:Alt+N

ui->pushBtn1->setText(tr("&nihao"));   // 这样便指定了Alt+N为加速键

设置按键图标:

ui->pushBtn2->setIcon(QIcon("../mybutton/images/help.png"));

设置按键下拉菜单:

    ui->pushBtn3->setText(tr("z&oom"));
    QMenu *menu = new QMenu(this);
    menu->addAction(QIcon("../mybutton/images/zoom-in.png"), tr("放大"));
    ui->pushBtn3->setMenu(menu);

未完待续。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt应用程序设计(二):窗口与部件 的相关文章

  • QSerialPort 中的 readAll() 不包括最后发送的响应

    我正在使用 Qt 来控制串行设备 如果我向串行设备发送命令 我会执行类似的操作serial gt write command r n 我制作了一个按钮 它将纯文本小部件内的文本更改为串行端口的响应 为了获得串口的响应 我使用serial g
  • Mac 上的 Qt — 如何访问帮助菜单中的“搜索”

    我正在将我的 Qt 应用程序移植到 Mac OS X 在 Windows Linux 上 我使用 QLineEdit 在帮助菜单中提供搜索功能 In Mac OS X I saw something like this is built i
  • 如何在qt中创建正确的退出按钮

    我正在尝试创建一个退出按钮来正确关闭我在 QT 中制作的 GUI 我尝试通过以下方式执行此操作 include
  • Qt Creator 2.8.1 Qt 5.1.1 Qt Designer Linux 显示新窗体

    我是 Qt 的初学者 所以希望这是一个容易回答的问题 我有相当多的 C 经验 这部分不是问题 我的应用程序的目的是进行代码生成 最初是为类制作头文件和实现文件 我非常喜欢 Code Blocks 上的类向导 但我认为我可以做更多的事情 我有
  • 为什么总是在 mouseDoubleClickEvent 之前调用 mousePressEvent

    请考虑以下代码 include
  • QFileInfo::isWritable() 在 Windows 7 上具有完全权限时返回 false

    QFile file filePath QFileInfo fileInfo file file open QIODevice ReadWrite or WriteOnly if fileInfo isWritable Log error
  • QWebSocketServer - 不释放内存

    首先 我在安全 websocket 服务器应用程序上运行 valgrind 并发现了一个问题 在 Qt Memcheck 中我必须检查 外部错误 看到它 一些字节是肯定输了 指着我的main就在我的地方QCoreApplication ex
  • 如何在 Qt simple 上解密/加密某些字符串(例如密码)

    这是我得到的 Qt SDK版本4 6 2 视窗XP 问题 我怎样才能简单地加密和简单地加密QString价值 我需要它能够将一些加密的字符串保存到 INI 文件中 并在重新打开应用程序后将字符串加密为正常的密码字符串值 PS 我正在寻找简单
  • 选择合适的IDE

    您会推荐使用以下哪种 IDE 语言来在 Windows 下开发涉及识别手势并与操作系统交互的项目 我将使用 OpenCV 库来执行图像处理任务 之后 我将使用 win32 API 或 NET 框架与操作系统交互 具体取决于您建议的工具 性能
  • QML改变图像颜色

    我搜索了如何对图像进行着色 格式为 svg 或 png 我尝试用一 个填充图像的矩形覆盖我的图像 但由于我的图像不是矩形 它会给整个矩形着色 而不仅仅是图像 可以用qml改变图像颜色吗 或者 是否可以使用 QPixmap 更改 qt 使用
  • QObject多重继承

    我正在尝试在 C Qt 类中使用 mix 来提供一大堆具有通用接口的小部件 该接口是以这样的方式定义的 如果它被定义为其他小部件类的基类 那么小部件本身将具有这些信号 class SignalInterface public QObject
  • 如何将flex和bison与Qt项目集成?

    我正在 git 源代码控制下使用 Qt4 制作 GUI 程序 Github页面 https github com vinayak garg dic sim 项目的一小部分需要扫描和解析 所以我想在项目中使用flex和bison 我能想到3种
  • 如何使用 qt 库中的调试符号为 qt 5.5 创建开发 shell

    我有一个开发外壳buildInputs条目包括qt55 qtbase 这很好用 今天 我在 qt 库中发生了段错误 我想要带有调试符号的 qt 库 我看了一下nixpkgs pkgs development libraries qt 5 5
  • 在 Windows 上以 QML 播放 RTSP 视频

    我正在尝试将 QML 中的 RTSP 流播放到视频标签中 如下所示 Repeater model 8 Video Layout fillWidth true Layout fillHeight true fillMode VideoOutp
  • 运行最新版本时没有“最新”消息?

    我正在尝试使用Sparkle https sparkle project org与 Qt Go 的绑定 https github com therecipe qt app 闪光 m import
  • 在 QtCreator 中调试时如何查看 qDebug 消息

    我正在从 Eclipse CDT 带有 Qt 集成插件 过渡到 QtCreator 2 0 但仍有一件事困扰着我 QtCreator 当我在 QtCreator 中调试时 我在Application output tab直到我停止正在调试的
  • MapItemView 在 dataChanged 信号后不会更新

    我正在使用 QMLMapItemView使用 C 的组件QAbstractListModel基于模型 这MapItemView当模型重置时 或者每当添加新项目或删除现有项目时 工作正常 但是 那MapItemView不反映对已添加项目的更改
  • 当给定 100k 项时,QListView 需要很长时间才能更新

    我在读取文件时遇到问题 具体是我想制作一本小字典 在我需要阅读的文件中有这样的内容 a Ph P6 a snsr CA a b c fb Dj a b c book i BS A except B gate oOPa y a font kQ
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • 我如何告诉 QTableWidget 结束编辑单元格?

    我正在显示一个弹出菜单来选择 QTableWidget 中的某些值 最下面的项目是 修改列表 条目 当我选择它时 应自动出现一个新窗口 并且 QComboBox 应消失 并且单元格返回到 Qt DisplayRole 状态 现在 Qt 拥有

随机推荐

  • 求两个正整数的最大公约数Python版

    求两个数的最大公约数我分别采用辗转相除法 辗转相减法 枚举法来求得 最小公倍数就是两个数之积除以最大公约数的结果 1 辗转相除法 思路 1 将两整数求余 a b x 2 如果x 0 则b为最大公约数 3 如果x 0 则 a b b x 继续
  • L298N驱动4个电机驱动小车

    程序代码下载地址 L298N驱动小车 L298N硬件说明 电源 驱动电源 12V 5V电压输出为单片机供电 GND 输出连接电机 OUT0 OUT2 通道A OUT3 OUT4 通道B 与单片机接口 通道A B使能 ENA ENB 逻辑输入
  • Vue3 的新特性

    Vue3 0的进度 7月18号 尤弟宣布首个 Vue 3 RC 发布 RC 即预发布版 这意味着 Vue3 内核的 API 和实现已到达稳定状态 在最终版本发布前 不会提出新功能或者做重大更改 看来距离 Vue3 0 正式版与我们见面已经不
  • 【 华为OD机试 2023】最多颜色的车辆(C++ Java JavaScript Python 100%)

    文章目录 题目描述 输入描述 输出描述 用例 题目解析 代码思路 C JavaScript Java Python 题目描述 在一个狭小的路口 每秒只能通过一辆车 假设车辆的颜色只有 3 种 找出 N 秒内经过的最多颜色的车辆数量 三种颜色
  • Java应用CPU占用过高故障排除

    一 背景 最近测试反馈测试环境接口偶现有访问超时 然后APP提示是网络失败 看了一下测试环境的应用完全没啥问题 一直以为是网络问题 今天测试有反馈了 赶紧看了一下测试服务器 这次终于有症状了 CPU直接飙到300 了 尽然问题复现了 直接开
  • uboot内存操作命令

    uboot内存操作命令命令用于直接对DRAM进行读写操作 常用命令有md nm mm mw cp cmp 1 md 命令格式 md b w l address of objects b w l 分别代表byte 1Byte word 2By
  • java和python二进制文件不能直接读取的解决方案

    前一阵在做一个项目时 会用到java和python 上下游的关系 java写 python读 但是发现两者的二进制文件无法直接读取 后来发现是由于编码的原因 比如在写入int时 一个是从左到右开始编码 一个是从右到左 所以无法直接读取 因此
  • opengl读取网格数据绘制三维物体_交互式三维绘图库(WxGL)速览

    WxGL是一个基于PyOpenGL的三维数据可视化库 以wx为显示后端 提供Matplotlib风格的交互式应用模式 同时 也可以和wxPython无缝结合 在wx的窗体上绘制三维模型 WxGL提供了一套简洁易用 对用户友好的API 将Op
  • 大龄失业超过半年,人生一劫,如何过关?

    在倒闭潮 裁员潮不断侵袭之下 如今的职场主打的就是一个惨烈 前一阵 38岁985硕士失业几个月被迫送外卖 的新闻 曾引起了不小的震动 同样也引起了很多人的共鸣 今天就来聊聊职场上的恐怖故事 如果将大龄 失业 超过半年这三个关键信息组合在一起
  • python使用openpyxl读取excel文件里的超链接文字与URL

    可以使用openpyxl这个库 pip install openpyxl 读取URL的示例代码 import openpyxl wb openpyxl load workbook data 文件 xlsx 读取文件 main sheet w
  • 秒杀多线程第二篇 原子操作 Interlocked系列函数

    秒杀多线程第二篇 原子操作 Interlocked系列函数 上一篇 CreateThread与 beginthreadex本质区别 中讲到一个多线程报数功能 为了描述方便和代码简洁起见 我们可以只输出最后的报数结果来观察程序是否运行出错 这
  • 在socket中使用域名

    客户端中直接使用IP地址会有很大的弊端 一旦IP地址变化 IP地址会经常变动 客户端软件就会出现错误 而使用域名会方便很多 注册后的域名只要每年续费就永远属于自己的 更换IP地址时修改域名解析即可 不会影响软件的正常使用 关于域名注册 域名
  • vtk数据交互的两种方式之回调函数、vtkCommand

    参考博客 VTK交互之vtkCommand 阿兵 AI医疗的博客 CSDN博客 vtkcommand 一 观察者 命令模式 VTK中用的较多的设计模式是 观察者 命令模式 Observer Command 要实现数据交互 主要基于观察者 命
  • mysql8 zip安装_windows10+mysql8.0.zip安装

    准备 环境 Windows 10 一 安装 1 解压zip包到安装目录 比如我的安装目录是 D Program MySQL 2 配置文件 在Windows系统中 配置文件默认是安装目录下的 my ini 文件 部分配置需要在初始安装时配置
  • t_1链表

    双指针 其实这是第一次接触这种算法概念 之前数据结构课堂上学习到的链表是非常基础和入门的 稍微进阶点的还得自己找资料学习 找题目练习 双指针 Two Pointers 指的是在遍历元素的过程中 不是使用单个指针进行访问 而是使用两个指针进行
  • 【Kaggle】【Titanic】【AutoGluon】测试

    文章目录 安装 训练 预测 提交方式 Competition首页 Notebook首页 结果 Reference 安装 pip install autogluon 安装autogluon 训练 from autogluon tabular
  • 第17章 站点构建

    mini商城第17章 站点构建 一 课题 站点构建 二 回顾 1 Gateway限流 2 Nginx限流 3 Redis集群应用 4 缓存灾难处理 三 目标 1 Sentinel Sentinel介绍 Sentinel核心功能 Sentin
  • 深度学习之学习(3-3)YOLOV2

    参见 目标检测论文阅读 YOLOv2 知乎 二 更快更准 YOLOv2 2 1 简介 2017年 作者 Joseph Redmon 和 Ali Farhadi 在 YOLOv1 的基础上 进行了大量改进 提出了 YOLOv2 和 YOLO9
  • 少样本NER的方法

    论文 Few Shot Named Entity Recognition A Comprehensive Study 速看 微软 韩家炜课题组的全面调研 NER标注数据少 怎么办 论文总结了少样本ner的三种方法 方案1 原型方法 Prot
  • Qt应用程序设计(二):窗口与部件

    一 部件基类继承表 二 窗口部件QWidget 1 窗口与子部件 窗口部件 Widget 简称部件 是Qt中建立用户界面的主要元素 像主窗口 对话框 标签 按钮 文本输入框等都是窗口部件 这些部件可以接受用户输入 显示数据和状态信息 并且在