您的位置:首页 > 编程语言 > Qt开发

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() //这样写 是对的 阻塞别的窗口

效果:



不对的地方 请批评指正


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ qt