qt_简易记事本_4
2015-12-01 10:04
357 查看
接上次
///////////////////////////////////////////
QPalette:调色板 用来管理控件或者窗体的所有颜色信息
在设置文本区文本的颜色时使用 和 设置文本区背景颜色时使用
不能使用QTextEdit::setTextColor(QColor ) 来设置文本的颜色 这样当文本清空后 新增的文本颜色又恢复为原来的颜色
需要使用QTextEdit::setPalette(QPalette ) 给文本区设置调色板
QColorDialog color_dlg; //颜色对话框
QColor color; //字体预设置的颜色
QPalette palette = edit->palette(); //首先获得 文本区的调色板对象
color = color_dlg.getColor(Qt::black); //默认为黑色
if (color.isValid()) //颜色有效
{
palette.setColor(QPalette::Text, color); //给调色板设置颜色
edit->setPalette(palette); //重新设置调色板
}
QPalette::setColor(QPalette::ColorRole ,QColor ) //设置调色板的属性 和调色板的颜色
上面设置的就是文本区的前景色(QPalette::Text) 也就是文本的颜色 预设置的颜色为从颜色对话框返回的颜色
类似的还有QPalette::Base 就是文本区的背景色 也就是文本区的背景颜色
QPalette::Window 窗口部件的背景色
QPalette::Button 按钮部件的背景色
QPalette::ButtonText 按钮部件的前景色
还有一些 去看文档吧
////////////////////////////////////////////
QStatusBar:状态栏
QStatusBar::show() //显示状态栏
QStatusBar::hide() //隐藏状态栏
在模仿windows查看菜单中的 状态栏项 时使用
//////////////////////////////////////////
在状态栏的右下角显示当前光标所在行 和 列
列好获取
textcursor = edit->textCursor(); //获取文本区的光标
int col = textcursor.columnNumber(); //这样就获取到了光标所在的列
行就不好了获取了
textcursor.blockNumber(); //这样获取不对 这样获取的是段落号码
textcursor = edit->textCursor();
QTextLayout *textlayout = textcursor.block().layout();
int temp_raw = textcursor.position() - textcursor.block().position();
int raw = textlayout->lineForTextPosition(temp_raw).lineNumber() + textcursor.block().firstLineNumber();
raw++; 这句不要忘了 不然行号是从0开始的
QLabel *raw_col;
raw_col->setText(tr("第%1行,第%2列").arg(raw).arg(col)); //这样就给标签设置了 光标的行 和 列 //QString::arg()//用字符串变量参数依次替代字符串中最小数值
///////////////////////////////////////////////
QMessageBox:消息提示框
QMessageBox::setText(QString ) //设置消息提示框 显示的内容
还有许多的成员函数 可以定制出随心所欲的提示框
不要使用QMessageBox::show() //这样写 提示框会一闪而过
应该使用QMessageBox::exec() //这样写 是对的 阻塞别的窗口
效果:
不对的地方 请批评指正
///////////////////////////////////////////
QPalette:调色板 用来管理控件或者窗体的所有颜色信息
在设置文本区文本的颜色时使用 和 设置文本区背景颜色时使用
不能使用QTextEdit::setTextColor(QColor ) 来设置文本的颜色 这样当文本清空后 新增的文本颜色又恢复为原来的颜色
需要使用QTextEdit::setPalette(QPalette ) 给文本区设置调色板
QColorDialog color_dlg; //颜色对话框
QColor color; //字体预设置的颜色
QPalette palette = edit->palette(); //首先获得 文本区的调色板对象
color = color_dlg.getColor(Qt::black); //默认为黑色
if (color.isValid()) //颜色有效
{
palette.setColor(QPalette::Text, color); //给调色板设置颜色
edit->setPalette(palette); //重新设置调色板
}
QPalette::setColor(QPalette::ColorRole ,QColor ) //设置调色板的属性 和调色板的颜色
上面设置的就是文本区的前景色(QPalette::Text) 也就是文本的颜色 预设置的颜色为从颜色对话框返回的颜色
类似的还有QPalette::Base 就是文本区的背景色 也就是文本区的背景颜色
QPalette::Window 窗口部件的背景色
QPalette::Button 按钮部件的背景色
QPalette::ButtonText 按钮部件的前景色
还有一些 去看文档吧
////////////////////////////////////////////
QStatusBar:状态栏
QStatusBar::show() //显示状态栏
QStatusBar::hide() //隐藏状态栏
在模仿windows查看菜单中的 状态栏项 时使用
//////////////////////////////////////////
在状态栏的右下角显示当前光标所在行 和 列
列好获取
textcursor = edit->textCursor(); //获取文本区的光标
int col = textcursor.columnNumber(); //这样就获取到了光标所在的列
行就不好了获取了
textcursor.blockNumber(); //这样获取不对 这样获取的是段落号码
textcursor = edit->textCursor();
QTextLayout *textlayout = textcursor.block().layout();
int temp_raw = textcursor.position() - textcursor.block().position();
int raw = textlayout->lineForTextPosition(temp_raw).lineNumber() + textcursor.block().firstLineNumber();
raw++; 这句不要忘了 不然行号是从0开始的
QLabel *raw_col;
raw_col->setText(tr("第%1行,第%2列").arg(raw).arg(col)); //这样就给标签设置了 光标的行 和 列 //QString::arg()//用字符串变量参数依次替代字符串中最小数值
///////////////////////////////////////////////
QMessageBox:消息提示框
QMessageBox::setText(QString ) //设置消息提示框 显示的内容
还有许多的成员函数 可以定制出随心所欲的提示框
不要使用QMessageBox::show() //这样写 提示框会一闪而过
应该使用QMessageBox::exec() //这样写 是对的 阻塞别的窗口
效果:
不对的地方 请批评指正
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解