对于Qt开发过程中,做一个项目在一个大的对话框上锁话的时间相对来说较少,但是花在细节处理的方向上往往占用了很多时间,这次就来个好好的总结一下,自己项目开发中遇到的一些小问题,好让自己更好的记忆,提高自己开发的效率,同时也提供大家参考下,当然如果有错误的地方,还希望大家指出来,我好进行验证并修改,好啦!废话不多说,直接上代码。(开始的时候不进行划分,等有空了,再来划分)
1.对QTextEdit中对鼠标位置的调整
QTextCursor cursor = QTextEdit::textCursor();//获得编辑光标
cursor.setPosition();//设定光标位置
QTextEdit::setTextCursor(cursor);//将该光标返回到QTextEdit中,位置也是存在的
这样我们就可对QTextEdit中光标的位置进行你需要的调整。
2.如何使QLabel可以屏蔽HTML的代码
在开发过程中经常会用到Qlabel来显示一个字符串,但是如果这个字符串中包含html,那该怎么办呢?
比如说:QLabel strLabel("<font color=red>hello Qt</font>");
按着正常的显示的话,会显示成hello Qt已经不是我们要的效果啦!
这时候我们应该改变QLabel 的textFormat: QLabel::setTextFormat(Qt::PlainText);
这样的话,你就可以搞定啦!
3.让QLabel处于可以选择的状态(可以通过鼠标来进行复制)
设置文本的互动:QLabel::setTextInteractionFlags(Qt::TextSelectableByMouse);//设置鼠标可以选择标志
QLabel::setTextInteractionFlags(Qt::TextSelectableByKeyboard);//设置键盘操作
4.QLabel的字体颜色
对于Qlabel的颜色,主要是通过俩种方式来实现一种是使用样式(setStyleSheet)还有一种就是使用调色板(QPalette),看代码
QLabel *label =new QLabel();
label->setstyleSheet("color:red");
label->setText("木子草33");
调色板
QPalette palette;
palette.setColor(QPalette::windowText,Qt::red);
label->SetPalette(palette);
通过将代码写入你会发现两者的效果是一样的。
5.事件过滤器
对不同的问题,有时候我们很难从最表层找出我们可以解决的方法,这时候深入一点,或许问题的解决难道就自然而然就降低啦!这就是我要说的事件过滤器。
对于事件的处理首先应该明白的是事件