亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 5.14 實例:高亮度顯示文本.txt

?? qt的源代碼
?? TXT
字號:
#ifndef HIGHLIGHTER_H
 #define HIGHLIGHTER_H
 #include <QSyntaxHighlighter>
 #include <QHash>
 #include <QTextCharFormat>
 class QTextDocument;
 class Highlighter : public QSyntaxHighlighter
 {
     Q_OBJECT
 public:
     Highlighter(QTextDocument *parent = 0);
 protected:
     void highlightBlock(const QString &text);
 private:
     struct HighlightingRule
     {
         QRegExp pattern;
         QTextCharFormat format;
     };
     QVector<HighlightingRule> highlightingRules;
     QRegExp commentStartExpression;
     QRegExp commentEndExpression;
     QTextCharFormat keywordFormat;
     QTextCharFormat classFormat;
     QTextCharFormat singleLineCommentFormat;
     QTextCharFormat multiLineCommentFormat;
     QTextCharFormat quotationFormat;
     QTextCharFormat functionFormat;
 };
 #endif 
#include <QtGui>
 #include "highlighter.h"
 Highlighter::Highlighter(QTextDocument *parent)
     : QSyntaxHighlighter(parent)
 {
     HighlightingRule rule;
     keywordFormat.setForeground(Qt::darkBlue);
     keywordFormat.setFontWeight(QFont::Bold);
     QStringList keywordPatterns;
     keywordPatterns << "\\bchar\\b" << "\\bclass\\b" << "\\bconst\\b"
                     << "\\bdouble\\b" << "\\benum\\b" << "\\bexplicit\\b"
                     << "\\bfriend\\b" << "\\binline\\b" << "\\bint\\b"
                     << "\\blong\\b" << "\\bnamespace\\b" << "\\boperator\\b"
                     << "\\bprivate\\b" << "\\bprotected\\b" << "\\bpublic\\b"
                     << "\\bshort\\b" << "\\bsignals\\b" << "\\bsigned\\b"
                     << "\\bslots\\b" << "\\bstatic\\b" << "\\bstruct\\b"
                     << "\\btemplate\\b" << "\\btypedef\\b" << "\\btypename\\b"
                     << "\\bunion\\b" << "\\bunsigned\\b" << "\\bvirtual\\b"
                     << "\\bvoid\\b" << "\\bvolatile\\b";
     foreach (QString pattern, keywordPatterns) {
         rule.pattern = QRegExp(pattern);
         rule.format = keywordFormat;
         highlightingRules.append(rule);
     }
     classFormat.setFontWeight(QFont::Bold);
     classFormat.setForeground(Qt::darkMagenta);
     rule.pattern = QRegExp("\\bQ[A-Za-z]+\\b");
     rule.format = classFormat;
     highlightingRules.append(rule);
     singleLineCommentFormat.setForeground(Qt::red);
     rule.pattern = QRegExp("//[^\n]*");
     rule.format = singleLineCommentFormat;
     highlightingRules.append(rule);
     multiLineCommentFormat.setForeground(Qt::red);
     quotationFormat.setForeground(Qt::darkGreen);
     rule.pattern = QRegExp("\".*\"");
     rule.format = quotationFormat;
     highlightingRules.append(rule);
     functionFormat.setFontItalic(true);
     functionFormat.setForeground(Qt::blue);
     rule.pattern = QRegExp("\\b[A-Za-z0-9_]+(?=\\()");
     rule.format = functionFormat;
     highlightingRules.append(rule);
     commentStartExpression = QRegExp("/\\*");
     commentEndExpression = QRegExp("\\*/");
 }
 void Highlighter::highlightBlock(const QString &text)
 {
     foreach (HighlightingRule rule, highlightingRules) {
         QRegExp expression(rule.pattern);
         int index = text.indexOf(expression);
         while (index >= 0) {
             int length = expression.matchedLength();
             setFormat(index, length, rule.format);
             index = text.indexOf(expression, index + length);
         }
     }
     setCurrentBlockState(0);
     int startIndex = 0;
     if (previousBlockState() != 1)
         startIndex = text.indexOf(commentStartExpression);
     while (startIndex >= 0) {
         int endIndex = text.indexOf(commentEndExpression, startIndex);
         int commentLength;
         if (endIndex == -1) {
             setCurrentBlockState(1);
             commentLength = text.length() - startIndex;
         } else {
             commentLength = endIndex - startIndex
                             + commentEndExpression.matchedLength();
         }
         setFormat(startIndex, commentLength, multiLineCommentFormat);
         startIndex = text.indexOf(commentStartExpression,
                                                 startIndex + commentLength);
     }
 } 
#ifndef MAINWINDOW_H
 #define MAINWINDOW_H
 #include <QMainWindow>
 #include "highlighter.h"
 class QTextEdit;
 class MainWindow : public QMainWindow
 {
     Q_OBJECT
 public:
     MainWindow(QWidget *parent = 0);
 public slots:
     void about();
     void newFile();
     void openFile(const QString &path = QString());
 private:
     void setupEditor();
     void setupFileMenu();
     void setupHelpMenu();
     QTextEdit *editor;
     Highlighter *highlighter;
 };
 #endif 
#include <QtGui>
 #include "mainwindow.h"
 MainWindow::MainWindow(QWidget *parent)
     : QMainWindow(parent)
 {
     setupFileMenu();
     setupHelpMenu();
     setupEditor();
     setCentralWidget(editor);
     setWindowTitle(tr("Syntax Highlighter"));
 }
void MainWindow::about()
 {
     QMessageBox::about(this, tr("About Syntax Highlighter"),
                 tr("<p>The <b>Syntax Highlighter</b> example shows how " \
                    "to perform simple syntax highlighting by subclassing " \
                    "the QSyntaxHighlighter class and describing " \
                    "highlighting rules using regular expressions.</p>"));
 }
 void MainWindow::newFile()
 {
     editor->clear();
 }
 void MainWindow::openFile(const QString &path)
 {
     QString fileName = path;

     if (fileName.isNull())
         fileName = QFileDialog::getOpenFileName(this,
             tr("Open File"), "", "C++ Files (*.cpp *.h)");
     if (!fileName.isEmpty()) {
         QFile file(fileName);
         if (file.open(QFile::ReadOnly | QFile::Text))
             editor->setPlainText(file.readAll());
     }
 }
 void MainWindow::setupEditor()
 {
     QFont font;
     font.setFamily("Courier");
     font.setFixedPitch(true);
     font.setPointSize(10);
     editor = new QTextEdit;
     editor->setFont(font);
     highlighter = new Highlighter(editor->document());
     QFile file("mainwindow.h");
     if (file.open(QFile::ReadOnly | QFile::Text))
         editor->setPlainText(file.readAll());
 }
 void MainWindow::setupFileMenu()
 {
     QMenu *fileMenu = new QMenu(tr("&File"), this);
     menuBar()->addMenu(fileMenu);
     fileMenu->addAction(tr("&New"), this, SLOT(newFile()),
                         QKeySequence(tr("Ctrl+N","File|New")));
     fileMenu->addAction(tr("&Open..."), this, SLOT(openFile()),
                         QKeySequence(tr("Ctrl+O","File|Open")));
     fileMenu->addAction(tr("E&xit"), qApp, SLOT(quit()),
                         QKeySequence(tr("Ctrl+Q","File|Exit")));
 }
 void MainWindow::setupHelpMenu()
 {
     QMenu *helpMenu = new QMenu(tr("&Help"), this);
     menuBar()->addMenu(helpMenu);

     helpMenu->addAction(tr("&About"), this, SLOT(about()));
     helpMenu->addAction(tr("About &Qt"), qApp, SLOT(aboutQt()));
 } 
 #include <QApplication>
 #include "mainwindow.h"
 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     MainWindow window;
     window.resize(640, 512);
     window.show();
     return app.exec();

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费视频| 国产精品综合一区二区| 日韩无一区二区| 免费成人在线观看视频| 26uuu亚洲| 成人高清av在线| 亚洲视频电影在线| 欧美日韩久久久久久| 免费看日韩精品| 久久久精品日韩欧美| av日韩在线网站| 亚洲永久免费av| 日韩一区二区在线看| 国产69精品久久久久毛片| 亚洲天堂精品在线观看| 欧美日韩亚洲综合| 国内精品视频一区二区三区八戒| 国产午夜精品福利| 色诱亚洲精品久久久久久| 婷婷综合久久一区二区三区| 精品国产人成亚洲区| 成人黄色在线视频| 亚洲va欧美va人人爽| 26uuu成人网一区二区三区| www.av亚洲| 天堂成人免费av电影一区| 久久综合色之久久综合| 91在线精品秘密一区二区| 日韩专区一卡二卡| 中文文精品字幕一区二区| 欧美唯美清纯偷拍| 国产激情一区二区三区四区| 一区二区三区成人| 精品福利视频一区二区三区| 91免费精品国自产拍在线不卡| 丝袜a∨在线一区二区三区不卡 | 欧美最猛性xxxxx直播| 蜜臀a∨国产成人精品| 国产精品久久久爽爽爽麻豆色哟哟| 欧美日韩一级大片网址| 国产精品一区二区三区乱码| 一区二区三区91| 欧美精品一区二区三区在线播放| 91免费观看视频在线| 乱一区二区av| 亚洲免费观看高清完整| 精品久久久网站| 欧美性猛交xxxx黑人交| 国产精品一区二区在线观看网站| 亚洲国产精品视频| 亚洲国产成人私人影院tom| 欧美男男青年gay1069videost | 日日欢夜夜爽一区| 中文字幕在线视频一区| 日韩欧美的一区| 欧美吞精做爰啪啪高潮| 成人高清视频在线观看| 另类小说一区二区三区| 日韩欧美一级特黄在线播放| 国产精品色婷婷久久58| 欧美一区二区网站| 成人精品高清在线| 日韩国产精品久久久| 国产精品久久久久影院| 欧美一区二区三区免费在线看| 91精彩视频在线观看| 欧美乱熟臀69xxxxxx| 亚洲bt欧美bt精品777| 5月丁香婷婷综合| 久久综合久久综合久久| 国产成a人亚洲| 天天av天天翘天天综合网| 国产精品嫩草影院com| 制服丝袜日韩国产| 99久久精品费精品国产一区二区| 亚洲成人免费视频| 国产精品免费看片| 日韩亚洲欧美一区| 99久久久久久| 国产精品资源在线看| 视频一区二区三区入口| 中文字幕一区二区三区四区不卡| 日韩视频免费观看高清完整版 | 国产成人免费视频一区| 久久精品国产久精国产| 性久久久久久久久久久久| 1区2区3区欧美| 久久人人爽人人爽| 91精品福利在线一区二区三区 | 久久久久97国产精华液好用吗| 欧美日韩亚洲综合一区| 色呦呦日韩精品| 大陆成人av片| 国产一区二区三区四区五区入口 | 欧美男男青年gay1069videost| 日本久久一区二区| voyeur盗摄精品| 国产成人在线视频免费播放| 麻豆国产91在线播放| 舔着乳尖日韩一区| 一区二区三区视频在线观看| 国产精品美女久久久久久久久久久| 精品理论电影在线| 欧美精选一区二区| 欧美丝袜丝交足nylons图片| 91丨porny丨首页| va亚洲va日韩不卡在线观看| 懂色av中文一区二区三区| 激情国产一区二区| 久久99国产精品免费| 青青青伊人色综合久久| 三级久久三级久久久| 亚洲乱码中文字幕| 亚洲自拍偷拍图区| 亚洲综合成人在线| 天天综合色天天综合色h| 亚洲韩国一区二区三区| 一区二区三区国产| 亚洲伊人色欲综合网| 亚洲一区中文在线| 亚洲成人自拍一区| 亚洲电影在线播放| 免费观看一级特黄欧美大片| 天天色综合天天| 裸体健美xxxx欧美裸体表演| 秋霞成人午夜伦在线观看| 日本午夜一区二区| 奇米精品一区二区三区在线观看| 日日噜噜夜夜狠狠视频欧美人 | 日韩免费观看高清完整版| 精品1区2区在线观看| 久久久亚洲国产美女国产盗摄| 国产丝袜在线精品| 中文成人av在线| 亚洲综合色自拍一区| 亚洲成a人在线观看| 奇米精品一区二区三区在线观看 | 99精品在线免费| 成人av综合一区| 97精品超碰一区二区三区| 一道本成人在线| 在线观看免费一区| 8x福利精品第一导航| 日韩视频中午一区| 久久精品欧美日韩精品 | 蜜桃一区二区三区在线观看| 五月天激情综合网| 国产在线精品国自产拍免费| 国产精品资源在线观看| 不卡高清视频专区| 亚洲免费观看在线视频| 欧美伦理影视网| 不卡的看片网站| 免费看欧美女人艹b| 亚洲人一二三区| 精品伦理精品一区| 欧美日韩精品福利| 成人理论电影网| 久久成人免费电影| 亚洲一卡二卡三卡四卡五卡| 国产亚洲欧美日韩日本| 成人视屏免费看| 成人激情免费视频| 国产精品一卡二| 日韩av电影免费观看高清完整版| 成人免费一区二区三区在线观看| 精品久久国产97色综合| 91麻豆精品国产91久久久使用方法| 风间由美一区二区av101| 色婷婷亚洲婷婷| 一本到三区不卡视频| 免费人成精品欧美精品| 国产精品国产三级国产普通话三级| 在线精品视频免费观看| 成人黄色一级视频| 丝袜a∨在线一区二区三区不卡| 日韩成人伦理电影在线观看| 国产成人aaaa| 欧美电影免费观看高清完整版在线 | 国产精品久久久久久久久搜平片| 亚洲精品免费在线播放| 国产在线精品一区二区不卡了| 91美女片黄在线| 2021中文字幕一区亚洲| 一区二区三区欧美日| 国产河南妇女毛片精品久久久| 在线亚洲一区观看| 日本一区二区三区久久久久久久久不| 1024成人网色www| 国产福利一区二区三区视频在线| 91在线精品一区二区三区| 久久理论电影网| 午夜精品aaa| 成人天堂资源www在线| 日韩欧美国产午夜精品| 亚洲精品亚洲人成人网在线播放| 国产成人在线视频网站| 91精品国产综合久久福利软件 | 亚洲婷婷国产精品电影人久久| 婷婷中文字幕一区三区|