QT开发之deigner+汉字显示等相关问题
2009-11-03 11:10
435 查看
最近QT4.3.5平台搭好后开始进行开发,根据项目的需求先做一些界面。
其中遇到两个大问题:1、使用designer+在main.cpp中添加自己的控件的问题
2、选择显示文本控件的问题
3、汉字显示及设置字体的大小、粗体、颜色、背景色函数的选择
解决方法:1、加载ui控件有两种方法:
(1)普通的加载方法:如我的main.cpp程序:
int main(int argc,char* argv[])
{
QApplication app(argc,argv);
Ui::Form ui;
QWidget *qwidget=new QWidget;
ui.setupUi(qwidget);
qwidget->show();
return app.exec();
} 即可实现!
(2)动态加载ui,用QUiloader,过程如下:
在.pro文件末尾添加CONFIG+=uitools;
main.cpp:#include<QFile>
#include<QUiloader>
QUiLoader loader;
QFile file("test.ui");
file.open(QFile::ReadOnly);
QWidget *third=loader.load(&file);
third->show();
注:动态加载Ui的好处就在于可以在设计的.ui文件上再增加自己的控件,如想加一个textEdit控件:
QTextEdit *textEdit=new QTextEdit(third);
textEdit->setGeometry(288,30,40,30);
textEdit->setText("<font color=red>abc</font>");
就可以显示了!
2、关于显示文本控件的选择:刚用QT对控件都不熟悉,QLabel可以显示文本,但是如果设置字体的话,它的函数
就不如textEdit的函数好用,而且textEdit关于设置文本的函数也比QLabel多一些!
3、汉字显示的问题:#include<QtCore/QTextCodec>
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
char *str="a真的";
textEdit->setText(QObject::tr(str));
或者text->setText(QObject::tr("真的"));
4、设置字体大小、粗体、斜体、颜色、背景的时候要注意:setFont可以设置,但是前提是没有用setStyleSheet函数
否则setFont不起作用,同时还可以用html脚步<font></font>这样设置。
StyleSheet方法:textEdit->setStyleSheet("font-size:18px;""background-color:black;"
"border-style:solid;""font-style:italic;""font-weight:bold;""color:white");
setFont方法: QFont font;
font.setFamily("Bitstream Charter");
font.setPixelSize(16);
font.setBold(true);
font.setItalic(true);
textEdit->setFont(font);
html方法:textEdit->setText("<font color=red>abc</font>")
其中遇到两个大问题:1、使用designer+在main.cpp中添加自己的控件的问题
2、选择显示文本控件的问题
3、汉字显示及设置字体的大小、粗体、颜色、背景色函数的选择
解决方法:1、加载ui控件有两种方法:
(1)普通的加载方法:如我的main.cpp程序:
int main(int argc,char* argv[])
{
QApplication app(argc,argv);
Ui::Form ui;
QWidget *qwidget=new QWidget;
ui.setupUi(qwidget);
qwidget->show();
return app.exec();
} 即可实现!
(2)动态加载ui,用QUiloader,过程如下:
在.pro文件末尾添加CONFIG+=uitools;
main.cpp:#include<QFile>
#include<QUiloader>
QUiLoader loader;
QFile file("test.ui");
file.open(QFile::ReadOnly);
QWidget *third=loader.load(&file);
third->show();
注:动态加载Ui的好处就在于可以在设计的.ui文件上再增加自己的控件,如想加一个textEdit控件:
QTextEdit *textEdit=new QTextEdit(third);
textEdit->setGeometry(288,30,40,30);
textEdit->setText("<font color=red>abc</font>");
就可以显示了!
2、关于显示文本控件的选择:刚用QT对控件都不熟悉,QLabel可以显示文本,但是如果设置字体的话,它的函数
就不如textEdit的函数好用,而且textEdit关于设置文本的函数也比QLabel多一些!
3、汉字显示的问题:#include<QtCore/QTextCodec>
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
char *str="a真的";
textEdit->setText(QObject::tr(str));
或者text->setText(QObject::tr("真的"));
4、设置字体大小、粗体、斜体、颜色、背景的时候要注意:setFont可以设置,但是前提是没有用setStyleSheet函数
否则setFont不起作用,同时还可以用html脚步<font></font>这样设置。
StyleSheet方法:textEdit->setStyleSheet("font-size:18px;""background-color:black;"
"border-style:solid;""font-style:italic;""font-weight:bold;""color:white");
setFont方法: QFont font;
font.setFamily("Bitstream Charter");
font.setPixelSize(16);
font.setBold(true);
font.setItalic(true);
textEdit->setFont(font);
html方法:textEdit->setText("<font color=red>abc</font>")
相关文章推荐
- QT开发之deigner+汉字显示等相关问题
- 嵌入式 QT开发汉字显示问题tr函数
- Qt开发相关问题
- Qt 汉字显示问题//QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
- 彻底弄懂Qt的编码(汉字乱码问题及相关函数作用)
- 关于qt无法显示汉字的问题
- Qt 国际化编程解决汉字显示方块、乱码问题!
- 彻底弄懂Qt的编码(汉字乱码问题及相关函数作用)
- Qt显示汉字乱码问题
- qt中显示汉字乱码问题
- 【Qt开发】【ARM-Linux开发】 QT在ARM上显示字体的问题
- windows开发常见问题系列--1 窗口显示相关
- Android开发——Activity销毁时异步任务的保存和恢复、以及相关的进度条的显示问题
- 解决QT4.3.5-X11和QtopiaCore-x86汉字不能正常显示的问题
- 微信小程序开发过程中tabbar页面显示的相关问题及解决办法
- QT学习笔记----解决QT无法显示汉字问题
- Qt 国际化编程,真正解决汉字显示方块、乱码问题!
- 彻底弄懂Qt的编码(汉字乱码问题及相关函数作用)
- 【Qt开发】解决Qt5.7.0中文显示乱码的问题
- linux中汉字显示的相关问题