QT学习笔记(一)

1)显示中文:
在main.cpp中加入:
#include<QTextCodec>

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

2)如何将QLabel 和QLindEdit在代码中建立伙伴关系:

第一种直接在构造函数中(利用setBuddy函数):

ui->label3->setBuddy(ui->LineEdit);//因为Label3与LineEdit都属于ui中的空间

3)如何用代码添加菜单(在对应.CPP文件的构造函数中添加)

QMenu *editMenu = ui->menuBar->addMenu(tr("编辑(&E)"));//添加编辑菜单
QAction *action_open = editMenu->addAction(QIcon("D:/For Code/5-1/myMainWindow/images/open.png"),tr("打开文件(&O)"));//添加打开菜单
action_open ->setShortcut(QKeySequence("Ctrl+O"));//设置快捷键
ui->mainToolBar->addAction(action_open);//在工具栏中添加动作

3)富文本处理:
// QT 第5章节---富文本处理-框架的实际应用
    QTextDocument *document = ui->textEdit->document();//获取文档对象
    QTextFrame *rootFrame = document->rootFrame();//获取根框架
    QTextFrameFormat format;//创建框架格式
    format.setBorderBrush(Qt::red);//边界颜色
    format.setBorder(3);//边界宽度
    rootFrame->setFrameFormat(format);//框架使用格式

    //使用光标类对象,在根框架中再添加一个子框架
    QTextFrameFormat frameFormat;
    frameFormat.setBackground(Qt::lightGray);//设定背景颜色
    frameFormat.setMargin(10);//设定边距
    frameFormat.setPadding(5);//设定填衬
    frameFormat.setBorder(2);
    frameFormat.setBorderStyle(QTextFrameFormat::BorderStyle_DotDash);//边框样式
    QTextCursor cursor = ui->textEdit->textCursor();
    cursor.insertFrame(frameFormat);文本处理

注:BorderStyle有 :
1)BorderStyle_Dashed;
2)BorderStyle_Dot Dash;
3)BrderStyle_Dot Dot Dash;
4)BorderStyle_Dotted;
5)BorderStyle_Double;
6)BorderStyle_Groove;

4)文本块
文本块的根式主要是由QTextBlockFormat类来处理,主要涉及对其方式、文本块四周边白、缩进等内容。而文本块中的文本内容的格式,比如字体大小、加粗、下划线等内容,则是由QTextCharFormat类来设置

5)connect()函数

将信号发送者sender对象中的信号signal与接受者receiver中的member槽函数联系起来。当指定信号signal时必须使用宏SIGNAL(),当指定槽函数时必须使用宏SLOT(),如果发送者与连接者属于同一个对象时,那么在connect调用中接受者参数可以忽略。

例如:connect(action_font, SIGNAL(toggled(bool)), this, SLOT(setTextFont(bool)));

具体如下:

QAction *action_font = new QAction(tr("字体"), this);

action_font -> setCheckable(true);//设置动作可以被选中

connect(action_font, SIGNAL(toggled(bool)), this, SLOT(setTextFont(bool)));

ui->mainToolBar->addAction(action_font);







猜你喜欢

转载自daisy-xu.iteye.com/blog/2180156