孤单总是难免的

导航

 

 

/*
qt 下载
http://download.qt.io/archive/qt/5.9/5.9.6/qt-opensource-windows-x86-5.9.6.exe

 

链接: https://pan.baidu.com/s/13GXBkqPFw5YcHew1blTTkw
提取码: emza
*/
//MinGW
//MSVC 2017
/***********************************************/

 


/*
QVector<int> h1; //向量
h1<<5<<6;
h1.append(1);
h1.prepend(2);
h1.replace(1,2);
h1.remove(0);
h1.removeAll(2);
h1[2];
h1.contains(3);

 

QList<int> h1;
//插入
h1 << 5 <<8;
h1.append(10);
h1.prepend(0);
h1.insert(1,99);
//访问
h1.at(2);
h1[2];
h1.contains(8);
h1.size();
//修改
h1.replace(5,66);
h1[0] = 100;
//删除
h1.removeFirst();
h1.removeLast();
h1.removeAt(2);
h1.removeOne(99);
h1.clear();
//QLinkedList类
QLinkedList<QString> h1;

 

QMap<QString, QString> h1; //红黑树
//插入
h1.insert("aaa", "100");
h1["bbb"] = "200";
//查找
h1["aaa"]; //通过key找value
h1.value("aaa");//通过key找value
h1.key("100");//value找key
h1.find("aaa");
QMultiMap<QString, QString> h2;
h2.insert("summer", "15℃");
h2.insert("summer", "35℃");
h2.remove("winter", "-55℃");//独有
h2.values("winter");

 

QHash<int, QString> h1;
h1.insert(1, "一块钱");
h1[50] = "五十块钱";
h1.insertMulti(100, "毛爷爷"); //重复key 插入
*/

 

/*
.pro/ .project 项目工程
QT += core gui 支持核心的界面编程
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
TARGET = asd 项目名字
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
RC_ICONS += login.ico 图标
SOURCES += \
main.cpp
HEADERS += \
logindialog.h \
FORMS += \
logindialog.ui
RESOURCES += \
image.qrc
*******************************************************
version 版本
target 目标
template 模板
icon 图标
sources 来源
resources 资源
headers 头文件
deprecated 弃用
defines 定义
property 属性

 

版本
目标
模板
图标
来源
资源
头文件
弃用
定义
属性
*/

 

/*
QString h1;
h1.toInt(); 字符串转整数
h1::number(3.14);整数转字符串
QByteArray tomArray = h1.toUtf8();字符串转utf-8字节数组
const char* aa = tomArray.data();
h1.right(4); 返回右边4个字母
h1.append("xxx");尾部追加
h1.sprintf("%s%d%s","史前",400,"万年");字符串占位符拼接
h1 = QString("%1%2").arg("史前").arg(400);字符串arg拼接
h1.at(2); 指定位置访问
h1.insert(5,h1.toUtf8()) 指定位置插入
h1.prepend("热带"); 头部插入
h1.replace(7,3,"三个月"); 指定位置替换
h1.startsWith("aaa"); 开始是否包含指定字符串
h1.endsWith(".htm",Qt::CaseInsensitive);末尾是否包含指定字符串
h1.contains("A");是否包含指定字符
h1.split(",");字符串分割
h1.compare("Tom","tom",Qt::CaseInsensitive);//字符串比较
h1.mid(5,3);字符串截取
h1.indexOf("aaa"); 返回查找字符串的索引
h1.indexOf(QRegExp&a,10 );返回指定位置查找字符串的索引
*******************************
字符串转整数
整数转字符串
字符串转utf-8字节数组
返回右边4个字母
尾部追加
字符串占位符拼接
字符串arg拼接
指定位置访问
指定位置插入
头部插入
指定位置替换
开始是否包含指定字符串
末尾是否包含指定字符串
是否包含指定字符
字符串分割
字符串比较
字符串截取
返回查找字符串的索引
返回指定位置查找字符串的索引

 

QStringList h1;
插入:
h1 << "星期一" << "星期二" ;
h1.append("aaa");
h1.insert(0,"星期零");
访问:
h1.at(0);
h1.contains("xxx");
h1.size();
删除:
h1.removeFirst();
h1.removeLast();
h1.removeAt(0);
h1.removeOne("星期一");
h1.clear();
*/

 


/*
QMessageBox h1;
h1.information (0,"标题","提示"); 消息
h1.question(0, "标题", "提示" );问题
h1.warning(0,"标题", "提示",); 警告
h1.critical(0, "标题","提示"); 危险
h1.about(0, "标题", "提示"); 关于

 

自定义消息框
h1.addButton("好吧", QMessageBox::ActionRole); 添加按钮
h1.setIconPixmap(QPixmap("msg.png")); 设置图标位图
h1.clickedButton();返回点击按钮

 


QMessageBox h1;
消息
问题
警告
危险
关于
***************
自定义消息框
添加按钮
设置图标位图
返回点击按钮
*/

 

/*
QFileDialog h1; 文件对话框
h1.getOpenFileName(0, "标题", "..", " (*.cpp);;");//获取打开文件名字
h1.getExistingDirectory(0, "标题", ".");//获取存在目录
h1.getSaveFileName(0,"标题",".");//获取保存文件名字
文件对话框
获取打开文件名字
获取存在目录
获取保存文件名字

 

*****************************************
QFile h1("文件路径");
h1.open(QIODevice::ReadOnly); //打开
h1.close(); //关闭
h1.setFileName("data.txt");//设置文件的名字
char buffer[32];
h1.readLine(buffer,sizeof(buffer)); //读一行
h1.errorString(); //错误字符串
h1.exists(); //是否存在
h1.readAll(); //读所有

 

打开
关闭
设置文件的名字
读一行
错误字符串
是否存在
读所有

 

****************************************
QDataStream h3(&h1)
h3<< QString("易烊千玺") //写文件
h3 >> name ;//读文件
****************************************

 

QTextStream h2(&h1);
h2.atEnd();
h2.readLine();
h2.setCodec("UTF-8");
h2.readAll();
******************************

 

QFileInfo h1("C:/Users/lz/Desktop/asd.txt");
h1.size(); //返回文件大小
h1.created(); //返回创建时间
h1.lastModified();//返回最后修改时间
h1.lastRead(); //返回最后阅读时间
h1.isDir(); //是否是目录
h1.isFile(); //是否是文件
h1.isSymLink(); //是否是系统链接
h1.isHidden(); //是否是隐藏文件
h1.isReadable(); //是否可读
h1.isWritable(); //是否可写
h1.isExecutable(); //是否可执行
h1.fileName();//返回文件名字
h1.canonicalFilePath();//返回标准的文件路径

 


返回文件大小
返回创建时间
返回最后修改时间
返回最后阅读时间
是否是目录
是否是文件
是否是系统链接
是否是隐藏文件
是否可读
是否可写
是否可执行
返回文件名字
返回标准的文件路径

 


*******************************************
QTextDocumentWriter h1(docName);
h1.write(this->document());

 

*/

 


/*
QRegExp h1("^[A-Za-z0-9]+[0-9]$");
h1.exactMatch("xxxx");
******************************

 

h1.setPatternSyntax(QRegExp::Wildcard);
h1.setPattern("\\b(hello|Hello)\\b");
h1.indexIn("Hmm hello everyone!")
h1.matchedLength();

 

*/
/*
信號映射器
QSignalMapper h1
connect(button1, SIGNAL(clicked()),
h1, SLOT(map()));
h1->setMapping(button1, 1);
connect(button2, SIGNAL(clicked()),
h1, SLOT(map()));
h1->setMapping(button2, 2);
****************************************
connect(h1, SIGNAL(mapped(int)),
aa, SLOT(xx(int)) );

 

map-> setMapping -> mapped;

*/

/*
Q Variant h1(100);
h1.toInt();
h1.type();//保存的类型
h1.value<QColor>();//保存的值
h1.canConvert(QVariant::Int); 能不能转化
h1.convert(QVariant::Int); 转化
*/

 

/*
QSplitter *splitter = new QSplitter(parent);
splitter->addWidget(&tree);
*/

/*
QAbstractListModel
int rowCount(const QModelIndex& parent)//必须有
//行的总数
QVariant data(const QModelIndex& index, int role) const //必须有
//添加数据
QVariant headerData(int section,
Qt::Orientation orientation, int role) const
//头部数据
Qt::ItemFlags flags(const QModelIndex& index)const
//是否可选、可编辑、可拖拽、是否启用等
//标记
bool setData(const QModelIndex& index,
const QVariant& value, int role)
//修改数据
bool insertRows(int position, int rows,
const QModelIndex& index);
//插入行
bool removeRows(int position, int rows,
const QModelIndex& index)
//删除行

 

QAbstractListModel
行的总数
添加数据
头部数据
标记
修改数据
插入行
删除行

****************************************

 

QAbstractTableModel
int rowCount(const QModelIndex& parent = QModelIndex())
//必须 行的总数
int columnCount(const QModelIndex& parent = QModelIndex())
//必须 列的总数
QVariant data(const QModelIndex& index, int role)const;
//必须 数据
QVariant headerData(int section,
Qt::Orientation orientation, int role) const
//表头数据
*****************************************
QAbstractTableModel
行的总数
列的总数
数据
表头数据

*****************************************
QTreeView / QListView / QTableView h1;

 

h1.setModel(model);//设置模型
h1.model(); //返回模型
h1.setSelectionModel(QItemSelectionModel*) //设置选择模型 用于共享
h1.setSelectionMode
(QAbstractItemView::MultiSelection);设置选择模式 多选
h1.selectionMode();//返回选择模式
h1.SIGNAL(doubleClicked(QModelIndex)) 双击信号

 

QTreeView / QListView / QTableView h1;
设置模型
返回模型
设置选择模型 用于共享
设置选择模式 多选
返回选择模式
双击信号

 


******************************************
QItemSelectionModel aa=h1.selectionModel();//返回选择模型
aa.select(QItemSelection*,QItemSelectionModel::Select);//选择
aa.currentIndex(); //返回当前的索引
aa void selectionChanged //信号选择改变
(const QItemSelection &selected, // 新选中的区域
const QItemSelection &deselected); // 取消选中的区域
aa void currentChanged //信号当前改变
(const QModelIndex &current, //新选中的模型索引
const QModelIndex &previous); //上一个选中的模型索引

 


QItemSelectionModel aa=h1.selectionModel();//返回选择模型
项目选择模型 aa
选择
返回当前的索引
信号 选择改变
信号 当前改变

******************************************
QStandardItemModel aa(3,3);
aa.setItem(1,1,QStandardItem* );//设置项目
aa.setData(index,text);设置数据
aa.data(index,Qt::EditRole).toString();//返回数据

 

aa.invisibleRootItem();
QStandardItem bb("xx");
bb.setText(QString("B")); //设置文本
bb.setIcon(QPixmap()); //设置图标
bb.setToolTip(QString("B项"));//设置状态提示
bb.appendRow(QStandardItem* );//添加行

 

QModelIndex bb=aa.index(1,1); 返回指定位置的索引
bb.data().toString(); 索引数据转字符串
bb.row() 索引的行
bb.column() 索引的列
QItemSelection cc(bb,bb) 项目选择
cc.indexes(); //返回所有索引 QModelIndexList
******************************************

QListWidget h1;
QListWidgetItem aa;
aa.setText("海角");
aa.setIcon(QIcon(pixmap));
aa.setToolTip("大海的角落");
h1.insertItem(1,aa);
h1.sortItems(Qt::DescendingOrder);
***************************************
QTreeWidget h1
h1.setColumnCount(2);
h1.setHeaderLabels(QStringList*)
QTreeWidgetItem aa(h1);
aa->setText(0,"小星星");
aa->setText(1,"第二颗星星");
****************************************
QTableWidget h1(3,2);
QTableWidgetItem aa("哈哈");
h1.setItem(1,1,aa);
h1.setVerticalHeaderItem(0,aa);
h1.setHorizontalHeaderItem(0,aa);
h1.show();
*/

 


/*
QMainWindow h1 ->QWidget
h1.setCentralWidget(&h); 设置中心部件
h1.statusBar(); //返回状态条
h1.statusBar()->showMessage("文档已打开",3000);//状态条显示信息
h1.statusBar().addPermanentWidget(QLabel *);//状态条添加永久的部件
******************************
设置中心部件
返回状态条
状态条显示信息
状态条添加永久的部件
*/
/*
QWidget h1 ->QObject
h1.setLayout();//设置布局
h1.resize(50, 50); //调整大小
h1.setFixedSize(50, 50); //设置固定大小
h1.setWindowTitle("xxxx"); //设置窗口标题
h1.setWindowFlags(Qt::Dialog); //设置窗口标记
h1.setWindowState(Qt::WindowMaximized);//设置窗口状态
h1.move(50,90);//移动窗口
h1.setFont(QFont());//设置字体
h1.close();//关闭
h1.show(); //显示
QPalette aa = h1.palette();//返回当前的调色板
aa.setColor(QPalette::Window,Qt::blue);
h1.setPalette(aa); //设置调色板
h1.setAutoFillBackground(true);//设置自动填充背景
h1.setWindowOpacity(0.5);//设置窗口透明度
h1.frameGeometry().topLeft();//返回几何属性左上角的坐标
h1.setAttribute(Qt::WA_DeleteOnClose);//设置属性
h1.setWindowModified(true);//设置窗口是否修改
h1.setWindowModality(Qt::NonModal);//设置窗口模态
h1.children();//返回窗口上的子部件
**************************************
设置布局
调整大小
设置固定大小
设置窗口标题
设置窗口标记
设置窗口状态
移动窗口
设置字体
关闭
显示
返回当前的调色板
设置调色板
设置自动填充背景
设置窗口透明度
返回几何属性左上角的坐标
设置属性
设置窗口是否修改
设置窗口模态
返回窗口上的子部件

 

void mousePressEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent *event)
void closeEvent(QCloseEvent *event) override;
void dropEnterEvent(QDragEnterEvent *event)
void dropEvent(QDropEvent *event) //拖拽放下
***************************
鼠标按下事件
鼠标移动事件
鼠标关闭事件
拖拽进入事件
拖拽事件

 

Qt::RightButton 右键
Qt::LeftButton 左键
event->button() 事件按钮
event->globalPos(); 事件全局的位置
event->accept(); 事件接受
event->ignore(); 事件忽略
event->acceptProposedAction();事件接受建议的动作
//接收事件 + 执行推荐的拖放操作(拖放专用)

 

event->mimeData(); 事件返回类型标签数据
mimeData()->hasUrls(); 类型标签数据是不是地址
mimeData->urls(); 类型标签数据返回QList<QUrl>
QUrl.toLocalFile();地址返回当地的文件

 

*********************************************

 

右键
左键
事件按钮
事件全局的位置
事件接受
事件忽略
事件接受建议动作

 

事件返回类型标签数据
类型标签是不是地址
类型标签返回QList<QUrl>
地址返回当地的文件
*/
/*
QDialog h1; ->QWidget
h1.exec(); 执行
QDialog::Accepted
QDialog::Rejected
done(Rejected);
done(Accepted);

 

接受
拒绝
*/

 

/*
QTimer h1
h1.singleShot(0,qApp,SLOT(quit())); 单一的发射
h1.setInterval(1000); 设置间隔多少秒
h1.start(); 开始
timeout();时间到信号
**********************************
QTime h1;
h1.currentTime(); //获取当前时间
h1.toString("hh:mm");//时间转字符串
QLCDNumber h1->QFrame->QWidget;
h1.display("aaaa");//显示文本

 

QTimer h1
单一的发射
设置间隔多少秒
开始
时间到信号
**********************************
QTime h1;
获取当前时间
时间转字符串

 

QLCDNumber h1->QFrame->QWidget;
显示文本

 

*/
/*
QFrame h1 ->QWidget
h1.setFrameStyle(QFrame::Box); 设置框架风格
********************************

 

QLabel h1; ->QFrame->QWidget
h1.setText("xxx"); 设置文本
h1.setPixmap(QPixmap("tree.png")); 设置位图
h1.setScaledContents(true); 设置比例内容
h1.setBuddy(); 设置伙伴
h1.setWordWrap(); 设置单词换行
********************************

 

QFrame h1 ->QWidget
设置框架风格
QLabel h1;
设置文本
设置位图
设置比例内容
设置伙伴
设置单词换行
*/

 

/*
QRadioButton h1 QAbstractButton ->QWidget
h1.setChecked(true); 设置选择
h1.isChecked(); 是否选择
h1.setText("正确"); 设置文本
h1.text(); 返回文本
QCheckBox h1; ->QWidget->QAbstractButton
h1.checkState(); 选择的状态
QPushButton h1; ->widget->QAbstractButton
QButtonGroup h1 按钮分组 无界面
h1.addButton(QRadioButton& );添加按钮
h1.checkedButton(); 返回选择的按钮
*************************************
QRadioButton h1
设置选择
是否选择
设置文本
返回文本

 

QCheckBox h1;
选择的状态

 

QButtonGroup h1 按钮分组 无界面
添加按钮
返回选择的按钮

 

*/

 


/*
HorizontalLayout /verticalLayout
QHBoxLayout / QVBoxLayout h1
h1.addWidget(); 添加部件
QSpacerItem aa(30,30)
h1.addItem(aa); 添加项目
h1.addLayout(&ha); 添加布局
h1.setSpacing(10); 设置间隙
h1.setMargin(10); 设置边距
*******************************
QGridLayout h1;
h1.addWidget(&w,0,0,1,1); 添加部件
*******************************
QFormLayout h1;
h1.addRow(&w,&w); 添加行
*******************************

 

HorizontalLayout /verticalLayout
添加部件
添加项目
添加布局
设置间隙
设置边距
*******************************
QGridLayout h1;
添加部件
*******************************
QFormLayout h1;
添加行
*/

 


/*
输入对话框
QInputDialog h1;输入对话框
h1.getText(0,"标题","提示",QLineEdit::Normal,"aaa",&ok);
h1.getItem(0,"标题","提示:", sexList,0, true, &ok);
h1.getInt(0,"标题","提示:",20,0,120,1,&ok); 得到整数
h1.getDouble(0, "标题", "提示:", 3.14, 0, 100,1, &ok);得到小数
*****************************************
QInputDialog h1;输入对话框
得到文本
得到字符串
得到整数
得到小数
*/

 

/*
颜色对话框
QColor h1;
h1.isValid(); 颜色是否有效
QColorDialog h1;
h1.getColor(Qt::yellow); 获取颜色
************************************
颜色是否有效
获取颜色
*/

 

/*
字体对话框
QFontDialog h1;
h1.getFont(bool); 获取字体
获取字体

 

QFontDatabase h1;
h1.standardSizes() 返回字体的标准大小
返回字体的标准大小

 

QFont h1;
h1.setPointSize(12);设置字体大小
h1=QApplication::font(); 获取当前重新的字体
h1.pointSize(); 返回字体大小

 

设置字体大小
获取当前程序的字体
返回字体大小
*/

 

/*
QLineEdit h1; ->QWidget
h1.text();
h1.displayText();
QLineEdit::returnPressed 信号
h1.clear();
h1.setFocus();
h1.setEchoMode(QLineEdit::Password);
**********************************
返回文本
*/

 

/*
信号与曹
Q_OBJECT //支持信号与槽的宏
QMetaObject::Connection aa; //保存信号与槽连接的返回值
aa = connect(this,SIGNAL(xx(QString&)),
this,SLOT(ss(QString&)));
connect(this,&aa::xx,this,&aa::yyy);
connect(this,SIGNAL(xx(QString&)),this,SIGNAL(xxx()));
signals:
void xx(QString& str); //信号不能也无需实现
private slots:
void on_yyy_clicked(){//自动连接,on_对象名_信号名
emit xx(str); //发送信号
};

 

QObject::connect(&h1, SIGNAL(doubleClicked(QModelIndex)),
&a, SLOT(aa(QModelIndex)));
QObject::connect(&h1, &QAbstractItemView::doubleClicked, aa);
*/
/*
动态属性系统
Q_PROPERTY(QString xx READ xx WRITE setxx NOTIFY xxChanged)
void setxx(QString strMaskNum){ 写
aa = strMaskNum;
emit xxChanged(strMaskNum);
};
QString xx()const{ 读
return aa;
};
signals:
void xxChanged(QString str); //信号
dd *aa = new dd;
QObject* obj = aa;
obj->property("xx").toString();//读
obj->setProperty("xx","kkkkkk");//写
*/

 


/*
QComboBox h1 ->QWidget
h1.addItem(QString&);
h1.findText(QString&);
h1.setCurrentIndex(int);
h1.addItem(QIcon(pix), NULL);
h1.setIconSize(QSize(70,20));
h1.setSizeAdjustPolicy(QComboBox::AdjustToContents);
*/

 


/*
QMenuBar h1 ->QWidget
h.addMenu("xxxx");
h.addMenu(QMenu*);
h.addAction("asd",this,aa::bb);
h.addAction(QAction* );
********************************
QToolBar h1;
h1.addAction(QAction * );

 

QToolButton aa;->QAbstractButton->QWidget
aa.setText("xxxx");
aa.setMenu(QMenu *);
aa.setPopupMode(QToolButton::MenuButtonPopup);
QSpinBox bb;
h1.addWidget(aa/bb)

 


********************************
QMenu h1 ->QWidget
h1.addAction("xxx");
h1.addAction(QAction*);
h1.addAction(QIcon("copy.png"),QString("复制(&C)"));
h1.addSeparator();
QMenu::aboutToShow 信号
************************************
QAction h1; ->QObject
setShortcut(QKeySequence("Ctrl + C"))
h1.setCheckable(true);
h1.isChecked();
h1.setChecked(true);
h1.setText("一样");
h1.setIconText("一样");
h1.setIcon(QPixmap&);
*********************************
自定义按钮
QWidgetAction 父指针是QMenu addAction(action);
QWidget *aa::createWidget(QWidget *parent)
{
if(parent->inherits("QMenu") ||
parent->inherits("QToolBar")){
QSplitter *splitter = new QSplitter(parent);
splitter->addWidget(&tree);

 


QLabel *label = new QLabel("插入文本:");
splitter->addWidget(label);
splitter->addWidget(lineEdit);
return splitter;
}
return 0;
}
***************************
QActionGroup h1;
h1.addAction("xxxx");
h1.addAction(QAction & );
*/
/*
QMdiArea h1 ->QAbstractScrollArea->QFrame->QWidget
QMdiArea::subWindowActivated(QMdiSubWindow*), 子窗口激活 信号
h1.addSubWindow(&w); 添加子窗口
h1.setActiveSubWindow(m); 设置活动的子窗口
h1.activeSubWindow(); 返回活动的子窗口
h1.subWindowList(); 返回子窗口链表
h1.closeActiveSubWindow(); 关闭活动的子窗口
h1.closeAllSubWindows(); 关闭所有子窗口
h1.tileSubWindows(); 平铺子窗口
h1.cascadeSubWindows(); 串连子窗口
h1.activateNextSubWindow(); 激活下一个子窗口
h1.activatePreviousSubWindow(); 激活前一个子窗口
h1.currentSubWindow(); 返回当前子窗口
*/

 

/*
QAbstractScrollArea h1;
h1.setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
h1.setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
*********************************************
QTextEdit h1 ->QAbstractScrollArea->QWidget
h1.setText("xxxx");
h1.setReadOnly(true);
copyAvailable 复制信号可用
h1.undo();
h1.redo();
h1.cut();
h1.paste();
h1.copy();
h1.textColor();
h1.setHtml(text);
h1.setPlainText("xxxx")
h1.setAlignment(Qt::AlignLeft | Qt::AlignAbsolute);
h1.find("xxxx",QTextDocument::FindBackward);
***********************************************
QTextCursor aa= h1.textCursor();
aa.hasSelection();
aa.setModified(false);
aa.select(QTextCursor::WordUnderCursor);

 

**************************************************
QTextEdit h1;
QPrinter aa(QPrinter::HighResolution);
QPrintDialog bb(aa,this);
bb->setOption(QAbstractPrintDialog::PrintSelection,true);
bb->exec() == QDialog::Accepted
h1.print(&aa);
*********************************************
QTextEdit h1;
QPrinter aa;
QPrintPreviewDialog bb(&aa,this);
connect(&bb,SIGNAL(paintRequested(QPrinter*)),
this,SLOT(xxx(QPrinter*)));
bb.exec();
void xxx(QPrinter* aa){
h1->print(aa);
}
*********************************************
QTextDocument *aa =h1.document();
QTextFrame *bb = aa.rootFrame();
QTextFrameFormat cc;
cc.setBorderBrush(Qt::red);
cc.setBorder(3);
cc.setBackground(Qt::lightGray);
cc.setMargin(10);
cc.setPadding(15);
cc.setBorderStyle(QTextFrameFormat::BorderStyle_DotDash);
bb.setFrameFormat(cc);
**************************************
QTextDocument aa=h1.document();
aa::contentsChanged
aa.isModified()
aa.blockCount();
***************************************
QTextFrameFormat aa;
QTextCursor bb = h1.textCursor();
bb.insertFrame(aa);
******************************************
QTextDocument *aa =h1.document();
aa.blockCount();
QTextBlock bb = aa.firstBlock();
bb.firstLineNumber();
bb.length();
bb.text();
bb.next();
*************************************
QTextCursor aa = h1.textCursor();
QTextBlockFormat bb;
bb.setAlignment(Qt::AlignCenter);
bb.indent();
bb.setIndent(0);
aa.insertBlock(bb);
**************************************
QTextCursor aa = h1.textCursor();
QTextCharFormat bb
bb.setFontWeight(QFont::Bold);
bb.setFontItalic(true);
bb.setFontUnderline(true);
bb.setFontPointSize(3.6);
bb.setFontFamily("宋体");
bb.setForeground(Qt::blue);
bb.setBackground(Qt::lightGray);
bb.setFont(QFont(QString("宋体"), 12, QFont::Bold, true));
aa.setCharFormat(bb);
aa.insertText("哈哈哈哈哈哈哈哈哈");
aa.mergeCharFormat(bb);
h1.mergeCurrentCharFormat(bb);
*************************************
QTextCursor aa =h1.textCursor();
QTextTableFormat bb;
bb.setCellSpacing(2);
bb.setCellPadding(10);
aa.insertTable(3,3,bb);
***********************************
QTextCursor aa=h1.textCursor();
QTextListFormat bb ;
bb.setIndent(1);
bb.setStyle(QTextListFormat::ListDecimal);
aa.insertList(bb);
aa.createList(tListFmt);
************************************

 

 

 

QTextCursor aa=h1.textCursor();
QTextImageFormat bb;
bb.setWidth(200);
bb.setHeight(200);
bb.setName("路径");
aa.insertImage(bb);
****************************************
QSyntaxHighlighter hh(h1.document());

 

void hh::highlightBlock(const QString &text)
{
QTextCharFormat aa;
aa.setFontWeight(QFont::Bold);
aa.setBackground(Qt::red);
aa.setForeground(Qt::green);

 

 

 

QRegExp bb("\\bgood\\b");
int index = text.indexOf(aa);
while(index >= 0){
int length = bb.matchedLength();//匹配到的字符长度
setFormat(index,length,aa);
index = text.indexOf(bb,index + length);
}
}
**************************************
QTextCursor aa = h1.textCursor();
aa.blockNumber();
aa.columnNumber();
*/
/*
qobject_cast<ChildWnd*>(actWnd->widget())
Qt::mightBeRichText(text)
*/

 

posted on 2022-10-19 23:16  孤单总是难免的  阅读(305)  评论(0)    收藏  举报