lv20 QT主窗口4

熟悉创建主窗口项目

1 QAction

2 主窗口

菜单栏:fileMenu = menuBar()->addMenu(tr("&File"));
工具栏:fileToolBar = addToolBar(tr("File"));
浮动窗:QDockWidget *dockWidget 
		= new QDockWidget(tr("Dock Widget"), this);
	   addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
中央部件:setCentralWidget(te);
状态栏:statusBar()->addWidget(progress);

 示例

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QAction>
#include <QTextEdit>
#include <QLabel>
#include <QFileDialog>
#include <QColorDialog>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
public slots:
    void openf()
    {
        QString filename = QFileDialog::getOpenFileName();
        te->setText(filename);
    }

    void copyf()
    {
        te->copy();
    }

    void pastf()
    {
        te->paste();
    }

    void setcf()
    {
        QColor ccc = QColorDialog::getColor();
        te->setTextColor(ccc);
    }
private:
    QAction *openfileact, *copyfileact, *pastfileact, *setcoloract;

    //central
    QTextEdit *te;

    //status
    QLabel *slb;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include <QMenu>
#include <QMenuBar>
#include <QToolBar>
#include <QStatusBar>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    // 创建动作并设置图标、快捷键
    openfileact = new QAction(QIcon("open.png"), "Open", this);
    openfileact->setShortcut(QKeySequence(tr("Ctrl+O")));

    copyfileact = new QAction(QIcon("copy.png"), "Copy", this);
    pastfileact = new QAction(QIcon("past.png"), "Paste", this);

    setcoloract = new QAction(QIcon("color.png"), "Set Color", this);

    // 创建菜单并添加动作
    QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
    fileMenu->addAction(openfileact);

    QMenu *editMenu = menuBar()->addMenu(tr("&Edit"));
    editMenu->addAction(copyfileact);
    editMenu->addAction(pastfileact);

    QMenu *setMenu = menuBar()->addMenu(tr("&Set"));
    setMenu->addAction(setcoloract);

    // 创建工具栏并添加动作
    QToolBar *tfile = addToolBar("File");
    tfile->addAction(openfileact);

    QToolBar *tedit = addToolBar("Edit");
    tedit->addAction(copyfileact);
    tedit->addAction(pastfileact);

    QToolBar *tset = addToolBar("Set");
    tset->addAction(setcoloract);

    // 设置中央部件为文本编辑框
    te = new QTextEdit("hello", this);
    te->setMinimumSize(640, 480);
    setCentralWidget(te);

    // 添加状态栏
    slb = new QLabel("1.txt*", this);
    QStatusBar *stb = statusBar();
    stb->addWidget(slb);

    // 连接信号和槽
    connect(openfileact, &QAction::triggered, this, &MainWindow::openf);
    connect(copyfileact, &QAction::triggered, this, &MainWindow::copyf);
    connect(pastfileact, &QAction::triggered, this, &MainWindow::pastf);
    connect(setcoloract, &QAction::triggered, this, &MainWindow::setcf);

}

MainWindow::~MainWindow()
{

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/426995.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言-简单实现单片机中的malloc示例

概述 在实际项目中&#xff0c;有些单片机资源紧缺&#xff0c;需要mallloc内存&#xff0c;库又没有自带malloc函数时&#xff0c;此时&#xff0c;就需要手动编写&#xff0c;在此做个笔录。&#xff08;已在项目上使用&#xff09;&#xff0c;还可进入对齐管理机制。 直接…

韦东山嵌入式Liunx入门驱动开发五

文章目录 一、驱动程序基石1-1 休眠与唤醒1-2 POLL机制1-3 异步通知(1) 异步通知程序解析(2) 异步通知机制内核代码详解 1-4 阻塞与非阻塞1-5 定时器(1) 内核函数(2) 定时器时间单位 1-6 中断下半部 tasklet 本人学习完韦老师的视频&#xff0c;因此来复习巩固&#xff0c;写以…

2023年第十四届蓝桥杯大赛软件类省赛C/C++大学A组真题

2023年第十四届蓝桥杯大赛软件类省赛C/C大学A组部分真题和题解分享 文章目录 蓝桥杯2023年第十四届省赛真题-平方差思路题解 蓝桥杯2023年第十四届省赛真题-更小的数思路题解 蓝桥杯2023年第十四届省赛真题-颜色平衡树思路题解 蓝桥杯2023年第十四届省赛真题-买瓜思路题解 蓝桥…

c/c++ | 静态链接、动态链接

正如标题所见&#xff0c;我们就来讲讲开发时遇到的一些问题&#xff0c;以及解决方案 这里不介绍动态库、静态库的生成与调用&#xff0c; 无论是静态库还是动态库&#xff0c;都是在编译项目的时候链接器会根据编译命令去调用的 如果直接把库&#xff08;动态、静态不论&…

自己本地模拟内存数据库增删改查

目录 学习初衷准备代码实现结果感谢阅读 学习初衷 用于满足自己的测试要求&#xff0c;不连接数据库&#xff0c;也不在意数据丢失 准备 maven依赖 org.springframework.boot spring-boot-starter-test test 代码实现 内存数据库&#xff08;InMemoryDatabase&#xff0…

玩转SpringBoot:动态排除Starter配置,轻松部署

引言 在软件开发中&#xff0c;进行本地单元测试是一项常规且必要的任务。然而&#xff0c;在进行单元测试时&#xff0c;有时需要启动一些中间件服务&#xff0c;如Kafka、Elasticjob等。举例来说&#xff0c;我曾经遇到过一个问题&#xff1a;项目中使用了Redisson锁&#x…

试手一下CameraX(APP)

书接上回。 首先还是看谷歌的官方文档&#xff1a; https://developer.android.com/media/camera/camerax?hlzh-cn https://developer.android.com/codelabs/camerax-getting-started?hlzh-cn#1 注&#xff1a;这里大部分内容也来自谷歌文档。 官方文档用的是Kotlin&…

JavaWeb之 创建 Web项目,使用Tomcat 部署项目,使用 Maven 构建Web项目(一万八千字详解)

目录 前言3.1 Tomcat 简介3.1.1 什么是 Web服务器3.1.2 Tomcat 是什么3.1.3 小结 3.2 Tomcat 的基本使用3.2.1 下载 Tomcat3.2.2 安装 Tomcat3.2.3 卸载 Tomcat3.2.4 启动 Tomcat3.2.5 关闭 Tomcat3.2.6 配置 Tomcat3.2.7 在 Tomcat 中部署 Web项目 3.3 在 IDEA 中创建 Web 项目…

探索前景:机器学习中常见优化算法的比较分析

目录 一、介绍 二、技术背景 三、相关代码 四、结论 一、介绍 优化算法在机器学习和深度学习中至关重要&#xff0c;可以最小化损失函数&#xff0c;从而改善模型的预测。每个优化器都有其独特的方法来导航损失函数的复杂环境以找到最小值。本文探讨了一些最常见的优化算法&…

Python爬虫——解析常用三大方式之JsonPath

目录 JsonPath 安装 使用 我们的json数据 基本使用 案例 总结 JsonPath 主要适用于解析一些json的数据 安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ jsonpath 使用 obj json.load(open( json文件 , r , encoding utf-8 ) )ret jsonpath.…

一些C语言知识

C语言的内置类型&#xff1a; char short int long float double C99中引入了bool类型&#xff0c;用来表示真假的变量类型&#xff0c;包含true&#xff0c;false。 这个代码的执行结果是什么&#xff1f;好好想想哦&#xff0c;坑挺多的。 #include <stdio.h>int mai…

EdgeX Foundry 安全模式安装部署

文章目录 一、安装准备1.官方文档2. 克隆服务器3.安装 Docker4.安装 docker-compose 二、安装部署1.docker-comepse2.启动 EdgeX Foundry3.访问 UI3.1. consul3.2. EdgeX Console EdgeX Foundry # EdgeX Foundryhttps://iothub.org.cn/docs/edgex/ https://iothub.org.cn/docs…

机器学习|KNN和Kmeans

KNN和Kmeans KNN KNN-K个最近的邻居&#xff0c;而K是可人先预设出来的。 所谓近朱者赤&#xff0c;近墨者黑。 可以选取离当前最近的K个样本来作为辅助判断&#xff0c;因为本样本和最近的K个样本应该是处于一种相似的状态。 以下是一个苹果和梨的识别任务。 图上会出现一个未…

立式学习灯值得买吗?五款立式学习灯真实测评

现在人们注重健康生活&#xff0c;特别是在面对目前青少年严峻的近视情况&#xff0c;大路灯作为补充光线的照明电器&#xff0c;在市场热度持续高涨&#xff0c;但其负面评价也屡见不鲜。有人反映使用后眼睛更容易疲劳、酸疼等不适症状。作为一名专业测评师&#xff0c;我提醒…

pdf编辑软件哪个好用?5款PDF编辑器分享

pdf编辑软件哪个好用&#xff1f;PDF编辑软件在现代办公和学术研究中发挥着举足轻重的作用&#xff0c;它们不仅具备基础的编辑和修改功能&#xff0c;还能够支持多种注释工具&#xff0c;帮助我们高效地管理和整理PDF文件。无论是需要调整文档布局、添加文本或图像&#xff0c…

Linux系统——LNMP架构

目录 一、LNMP架构定义 1.LNMP定义 1.1LNMP工作原理 2.FASTCGI 2.1CGI的由来 2.2为什么会有FastCGI 3.PHP 3.1什么是PHP-FPM 3.2PHP配置 3.1.1对配置文件的修改生效方法 3.1.2/etc/php.ini配置文件格式 3.1.3注释符&#xff1a; 3.1.4php.ini配置参考文档 3.1.5…

【Linux取经路】文件系统——inode与软硬链接

文章目录 一、前言二、认识硬件——磁盘2.1 磁盘的存储构成2.2 磁盘的逻辑抽象 三、操作系统对磁盘的使用3.1 再来理解创建文件3.2 再来理解删除文件3.3 再来理解目录 四、硬链接五、软链接六、结语 一、前言 在之前的【Linux取经路】文件系统之被打开的文件——文件描述符的引…

自动驾驶加速落地,激光雷达放量可期(上)

1 激光雷达应用广泛&#xff0c;汽车有望成最大催化 激光雷达&#xff08;LiDAR&#xff09;是一种主动遥感技术&#xff0c;通过测定传感器发出的激光在传感器与目标物体之间的传播距离&#xff0c;来分析目标地物表面的反射能量大小、反射波谱的幅度、频率和相位等信息&#…

python基础使用之记录日志模块

我们在编写Python 程序时&#xff0c;记录日志信息是一种非常重要的需求&#xff0c;日志可以帮助调试和跟踪程序的执行过程。那么Python中提供了内置的logging模块&#xff0c;用于记录各种级别的日志信息。本文主要介绍Python日志信息输出的实现过程。 1. 导入 logging 模块…

C++入门全集(4):类与对象【下】

一、再谈构造函数 1.1 构造函数体内赋值 我们知道&#xff0c;在创建对象时&#xff0c;编译器会自动调用构造函数给对象中的各个成员变量一个合适的初始值 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;}private:int _yea…