Qt6 C++基础入门3 对话框与MainWindow

news/2025/1/12 17:39:12/

目录

      • 对话框
      • MainWindow
        • 菜单
        • 工具栏

对话框

目前的对话框主要有以下几大类

  • 文件对话框( QFile Dialog)
  • 消息对话框( QMessageBox)
  • 输入对话框( QInputDialog)
  • 颜色对话框( QColorDialog)
  • 字体对话框( QFontDialog)

这是七大对话框及其基本用法的实例参考,所有代码都写在槽函数里面了

#include "Widget.h"
#include "ui_Widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);te = ui->textEdit;
}Widget::~Widget()
{delete ui;
}// 打开文件对话框
void Widget::on_fileBtn_clicked()
{// 打开多个文件并获取文件完整路径// 如果你想打开单个文件,请使用getOpenFileName方法QStringList filenames = QFileDialog::getOpenFileNames(this,"打开图片", ".", "Images (*.png *.jpg)");for(int i=0; i<filenames.length(); i++)te->append(filenames[i]);
}// 颜色选择对话框
void Widget::on_colorBtn_clicked()
{QColor color = QColorDialog::getColor();te->setTextColor(color);
}// 字体选择对话框
void Widget::on_fontBtn_clicked()
{bool ok;QFont font = QFontDialog::getFont(&ok);if(ok)  //用户选择了字体te->setCurrentFont(font);
}void Widget::on_inputBtn_clicked()
{QString str = QInputDialog::getText(this, "xxxx", "yyyy");te->setText(str);
}void Widget::on_errorBtn_clicked()
{QErrorMessage *x;x->showMessage("error message show");
}void Widget::on_messageBtn_clicked()
{QMessageBox::warning(this, "xxxx", "yyyyyyy", QMessageBox::Open, QMessageBox::Apply);
}void Widget::on_processBtn_clicked()
{QProgressDialog x;x.setValue(88);x.exec();
}

MainWindow


菜单

使用代码的方式添加(不推荐,不方便管理)

#include "MainWindow.h"
#include "ui_MainWindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 创建菜单项,名称为“打开文件”QAction *a1 = new QAction("打开文件");a1->setIcon(QIcon("xxx.png")); // 设置菜单项图标a1->setShortcut(QKeySequence("Ctrl+O")); // 设置菜单项右侧简介// 创建主菜单,名称为“文件”QMenu *menu = menuBar()->addMenu("文件");menu->addAction(a1); // 把菜单项插入到主菜单里面
}MainWindow::~MainWindow()
{delete ui;
}

使用 Designer 直接设计

进入 UI 编辑界面,双击顶部即可创建新的主菜单;
进入主菜单后,继续双击即可创建菜单项;

下图创建一个使用快捷键 ctrl+f 触发的菜单项,我们在创建时应该输出: new (&F)

其中 &F 表示以&后面的第一个字母作为 ctrl 的辅助键,例如 &X 就表示 ctrl+x

在这里插入图片描述


如何触发菜单项点击事件?

新建一个主菜单以及对应菜单项后,我们会在设计页面的右侧预览中找到对应的组件

如下图

  • menuBar 表示默认的菜单组件
  • menu 表示新添加的主菜单“文件”
  • actionFile 表示先添加的菜单项“new”

在这里插入图片描述

之后直接回到 MainWindow.cpp,添加对应 connect 即可!

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);connect(ui->actionNew,&QAction::triggered,this,&MainWindow::newFile);
}

工具栏

在 designer 界面,右键点击 mainwindow,弹出窗口选择添加工具栏即可!

由于无法直接在 designer 里面添加工具栏项,我们只能借用菜单栏内的菜单项(即 action)
下方代码我们先使用变量获取 toolbar 以及对应的 actionnew,然后使用 addAction 把对应的菜单项添加到工具栏即可!

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);toolBar = ui->toolBar;      // 获取工具栏实例actionNew = ui->actionNew;  // 获取欲添加的菜单项实例// 先绑定菜单项action对应的信号和槽connect(actionNew,&QAction::triggered,this,&MainWindow::newFile);// 然后把菜单项插入到工具栏toolBar->addAction(actionNew);}


http://www.ppmy.cn/news/293661.html

相关文章

给大家推荐一款冰点文档下载器(免登陆,免积分)下载百度,豆丁,畅享网,mbalib,hp009,mab.book118文库文档

给大家推荐一款冰点文档下载器&#xff08;免登陆,免积分&#xff09; 下载百度,豆丁,畅享网&#xff0c;mbalib&#xff0c;hp009&#xff0c;mab.book118文库文档; 下载链接在我的资源里面&#xff08;资源也是免积分的&#xff09;; 资源链接&#xff1a;http://download…

bibtex4word 安装及使用

一、安装 1、首先需要安装TexLive20xx&#xff0c;包含bibtex.exe 2、bibtex4word下载地址&#xff1a;Bibtex4Word 下载后解压&#xff0c;将bibtex4word.dot文件拷贝出来&#xff0c;复制到C:\Users\*****\AppData\Roaming\Microsoft\Word\STARTUP目录下 3、添加用户环境…

【转载】天际智联的E-Link32下载器驱动失败安装问题

【转载】 https://www.jianshu.com/p/41b9a2f266f8 原标题&#xff1a; 【使用E-Link32调试IMXRT1060】 &#xff08;以下是我自己写的&#xff09; 我电脑使用官方的方法安装驱动时失败了&#xff0c;提示是“INF中的服务安装段落无效”。 网上查找了许多方法&#xff0c;大…

Eudemon1000E-G55使用

省公司防火墙登陆方式&#xff1a;通过ssh方式登陆10.134.64.9&#xff0c; 用户名&#xff1a;netadmin 密码:SXsnmcc0E1000 输入用户名和密码后出现如下信息&#xff1a; HRP_M<ChinaMobile_OA-SNXA-E1000E-3> 输入超级密码&#xff1a; HRP_M<ChinaMobile_OA-SNXA-…

【富文本】亿图思维导图MindMaster Pro限时赠送正版

已停止赠送&#xff0c;如有需要请查看&#xff1a;亿图思维导图软件 Edraw MindMaster Pro 8.0.102 中文直装版全功能专业版

Dooc 文档下载器 -- 支持【百度文库】、【豆丁】、【MBALib】直接下载,无需登录积分

Dooc 文档下载器 -- 支持【百度文库】、【豆丁】、【MBALib】直接下载&#xff0c;无需登录积分。轻松下载各类文库文档。 本程序使用 Python 编写。 下载&#xff1a;点这里下载 操作简单 自动打包成 PDF 字迹清晰

EC600 QuecPython开发环境搭建、固件下载,最方便的OpenCPU物联网4G通信解决方案

EC600 QuecPython 官方资源汇总开发环境搭建1、安装windows驱动2、验证模组的固件版本3、烧录QuecPython固件 小试QuecPython1、查看系统信息2、点亮V1.2开发板上的LED&#xff08;D6&#xff09;。3、UART0串口测试4、获取基站时间5、解析域名 QuecPython是移远通信模组的一种…

【查找资料】冰点文档下载免费下载百度、豆丁、丁香、畅享、MBALib、道客巴巴、Book118等文库文档

原文地址::http://www.bingdian001.com/?p30 最新版本&#xff1a;3.2.4 下载地址&#xff1a; 百度网盘下载霏凡下载 中关村在线下载 最新7月12日调试版本下载&#xff1a; 百度网盘下载 无需积分就可以自由下载百度、豆丁、丁香、MBALib、道客巴巴、Book118等文库文档&…