我subclass了QTextEdit,然后在构造函数里用setCurrentFont设置字体和大小,载入一个文档后显示正常,但把内容删完,光标回到起始位置后,edit的字体和大小就变小了??
绞尽脑汁奋战一个晚上没搞定,不知道是什么问题,后来搜到了一位仁兄的一个解决方案,用setStyleSheet,试了下,果然可以!但到用setTabStopWidth设定tab宽度时,发现又不对了,无论我setStyleSheet的字体大小怎么变,fontMetrics.width(" ")就是不变!造成的效果就是,tabstop比预定义位置要小,而且经常stop在某个字符中间
2个问题:
1、为啥用setCurrentFont会出现字体还原,就是我上面说的那种情况;
2、请问通过setStyleSheet改变字体和大小后,怎么获得正确的当前字体大小pixel来传给setTabStopWidth呢?
学了2年c++想真正开始做点东西,无奈qt之路挫折重重,跪求高人相助!!
[code]
{ // 我的edit构造函数
......
setStyleSheet("QTextEdit {font-family:'Courier New'; font-size:13px;}");
int i;
this->setTabStopWidth((i = QFontMetrics(currentFont).width(" ")) * 4);
printf("%d", i); // 这里无论font-size怎么改都不会变,直接13*4出来的效果也不对
......
}
[/code]