lv20 QT主窗口

熟悉创建主窗口项目

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_OBJECTpublic: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;//centralQTextEdit *te;//statusQLabel *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()
{}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT集成Protobuf

1.定义protobuf package ImageRender;message MessagePadding {required int32 left 1;required int32 top 2;required int32 right 3;required int32 bottom 4; }2.通过protoc.exe编译proto文件 一般可以写一个bat来执行命令&#xff1a; %~d0 cd %~p0rem The following…

fork创建子进程及僵尸进程的产生及规避

本篇文章的学习与总结来源于 https://www.bilibili.com/cheese/play/ep182659?csourcecommon_hp_history_null&t3&spm_id_from333.1007.top_right_bar_window_history.content.click 通常使用fork()函数产生新的子进程&#xff0c;需要包含两个头文件<sys/types.h…

关键字:private关键字作用,解析及用法

private关键字在 Java 中用于定义类的成员&#xff08;如变量、方法&#xff09;的访问权限。它表示该成员只能在类的内部被访问和修改&#xff0c;而在类的外部是不可见的。 以下是private关键字的主要作用和解析&#xff1a; 作用&#xff1a; 封装性&#xff1a;通过将类的…

数学建模【聚类模型】

一、聚类模型简介 “物以类聚&#xff0c; 人以群分”&#xff0c;所谓的聚类&#xff0c;就是将样本划分为由类似的对象组成的多个类的过程。聚类后&#xff0c;我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测&#xff0c;也可以探究不同类之间的相关性和…

[第九天】C++的string类以STL标准模板库(万字详细解说)

一、STL的概述 为提高复用性&#xff0c;建立数据结构和算法的一套标准&#xff0c;诞生了STL(Standard Template Library,标准模板库&#xff09;&#xff0c;STL从广义上分为三大组件:容器(container)、算法(algorithm)、迭代器(iterator)&#xff0c;容器和算法之间通过迭代…

MySQL 逗号分隔查询--find_in_set()函数

业务场景&#xff1a; 在使用MySQL的时候&#xff0c;可能的某个字段存储的是一个英文逗号分割的字符串&#xff08;这里我们不讨论表设计的合理性&#xff09;&#xff0c;如图所示&#xff1a; 我们在查询的时候需要匹配逗号分割中的某个字符串&#xff0c;该怎么查询呢&am…

压缩式 交换式 碎片整理 :(使碎片减少或没有)

交换式碎片整理 首先流程 是 p3这个程序在运行&#xff0c;p1p2p4 的话在等待 &#xff0c;然后p3这时要多用3个内存块&#xff0c;这是 p4 通过拷贝&#xff0c;将内存拷贝到磁盘上&#xff0c;对应的数据也是从主存中cp到磁盘此时主存多出3个内存块给p3继续使用 2.压缩式碎片…

手撕LRU缓存——LinkedHashMap简易源码

题目链接&#xff1a;https://leetcode.cn/problems/lru-cache/description/?envTypestudy-plan-v2&envIdtop-100-liked 原理非常简单&#xff0c;一个双端链表配上一个hash表。 首先我们要知道什么是LRU就是最小使用淘汰。怎么淘汰&#xff0c;链表尾部就是最不常用的直接…

vue3批量创建svg icon组件

1、通过插件动态导入svg文件 安装vite插件vite-plugin-svg-icons npm i vite-plugin-svg-icons -D 配置插件svg-icon.ts import { createSvgIconsPlugin } from "vite-plugin-svg-icons"; import path from "path";export default function createSvgI…

好物周刊#42:国产项目管理软件

https://github.com/cunyu1943 村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. 菠萝博客 基于 Java 的菠萝博客系统&#xff0c;简单易部署&#xff0c;精致主题&#xff0c;贴心服务&#xf…

模型优化_XGBOOST学习曲线及改进,泛化误差

代码 from xgboost import XGBRegressor as XGBR from sklearn.ensemble import RandomForestRegressor as RFR from sklearn.linear_model import LinearRegression as LR from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split,c…

ChatGPT提示词工程师AI大神吴恩达2023年视频课程学习实践

前言 刚才看了一个视频系列教程&#xff0c;很短&#xff0c;但收获很大&#xff0c;毕竟是一手知识来源&#xff0c;吴恩达大神亲自讲解&#xff0c;他说的话&#xff0c;我都信。这里写个笔记&#xff0c;顺便把知识点实践一下。视频可以去B站上搜索 吴恩达 prompt &#xf…