#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QMenu"
#include "QAction"
#include"QFontComboBox"
#include"QFile"
#include"QFileDialog"
#include "QClipboard"
#include "QSlider"
#include "QDebug"
#include "QColorDialog"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QAction *aOpen = new QAction("Open(打开文本)");
QAction *aSave = new QAction("Save(保存下面的文字)");
QAction *aCopy = new QAction("Copy(复制选中内容)");
QAction *aPaste = new QAction("Paste");
QAction *aColor = new QAction("Color");
aSave->setIcon(QIcon(":/save.png"));
aColor->setIcon(QIcon(":/color1.png"));
//菜单栏
QMenu *m1 = menuBar()->addMenu("TEST");
m1->addAction(aOpen);
m1->addAction(aSave);
m1->addAction(aCopy);
m1->addAction(aPaste);
m1->addAction(aColor);
//工具栏
QFontComboBox *fc = new QFontComboBox;
QSlider *sl = new QSlider;
fc->setMaximumWidth(100);
sl->setOrientation(Qt::Horizontal);
sl->setRange(10,150);
sl->setValue(30);
sl->setMaximumWidth(150);
QToolBar *settool = addToolBar("设置");
settool->addAction(aColor);
settool->addWidget(fc);
settool->addWidget(sl);
connect(sl,QSlider::valueChanged,[=]{
QFont ft = ui->te->font();
ft.setPointSize(sl->value());
ui->te->setFont(ft);
});
connect(fc,QFontComboBox::currentFontChanged,[=]{
QFont ft = ui->te->font();
QFont ft2 = fc->currentFont();
ft.setFamily(ft2.family());
ui->te->setFont(ft);
});
connect(aCopy,QAction::triggered,[&]{
QClipboard* clipboard = QApplication::clipboard();
QString t = ui->te->textCursor().selectedText();
clipboard->setText(t) ;
});
connect(aPaste,QAction::triggered,[&]{
QClipboard* clipboard = QApplication::clipboard();
QString s = clipboard->text(QClipboard::Clipboard);
if(s.isEmpty() == false)
ui->te->textCursor().insertText(s);
});
connect(aColor,SIGNAL(triggered()),this,SLOT(setcolor()));
connect(aOpen,SIGNAL(triggered()),this,SLOT(openFile()));
connect(aSave,SIGNAL(triggered()),this,SLOT(savefile()));
ui->te->setText(" 1.点击颜色图标 可以修改选中及后续输入文字的颜色 或者点击TEST"
"颜色 同样可以修改字体颜色\n"
" 2.字体可以通过选择字体栏修改\n"
" 3.问题大小通过滑块修改");
}
void MainWindow::openFile()
{
QString s = QFileDialog::getOpenFileName();
if(s.isEmpty()) return;
QFile f(s);
f.open(QIODevice::ReadOnly);
QByteArray buf = f.readAll();
f.close();
ui->te->setText(buf);
}
void MainWindow::savefile()
{
QString s = QFileDialog::getSaveFileName();
QString buf = ui->te->toPlainText();
QFile f(s);
f.open(QIODevice::ReadWrite);
f.write(buf.toUtf8());
f.close();
}
void MainWindow::setcolor()
{
QColor cl = QColorDialog::getColor();
if(cl.isValid())
ui->te->setTextColor(cl);
}
MainWindow::~MainWindow()
{
delete ui;
}
QT-05-qt QTextEdit控件测试 (文本字体 及粘贴板的使用)
需积分: 31 66 浏览量
2022-10-26
10:23:57
上传
评论
收藏 78KB ZIP 举报
漫步者968
- 粉丝: 1
- 资源: 22
最新资源
- yolo目标检测项目实验
- downloadFile-1.hc
- Centos7.9环境下离线安装开源版Nginx(亲测版)
- C++课程设计:基于Qt的航班信息管理系统
- ADS7822UVerilog驱动,前面传的有点问题
- 基于python的高性能爬虫程序,使用了多线程+缓存+xpath实现的,这里以彼-岸图库为例,实现,仅用于学习交流
- 中分辨率成像光谱仪(MODIS)烧毁面积产品信息MODIS-C6-BA-User-Guide-1.2.pdf
- Screenshot_20240427_172613_com.huawei.browser.jpg
- 关于学习Python的相关资源网站链接及相关介绍.docx
- (HAL库)基于STM32F103C8T6的温控PID系统[Dht11、ESP8266、无线透传、L298N……]
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈