已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
QT中设置字体和更改字体颜色 更改部分:setTextColor(QColor(red)更改全部:对一个文本框lineEdit设置字体,首先我建了一个按钮setFontButton用来设置并定义了它的相应函数setFont,将setFontButton添加到布局中,并通过connect()设置与setFont()关联,然后定义setFont如下 void FindDialog:setFont()bool ok;const QFont& font = QFontDialog:getFont(&ok,lineEdit-font(),this,tr(fontDialog);if(ok)lineEdit-setFont(font);这样就可以设置字体了改变字体或按钮的颜色:先加入色板类#include 比如要设置lineEdit里字体的颜色为红色QPalette pal =lineEdit-QPalette();pal-setColor(QPalette:Text,QColor(255,0,0);lintEdit-setPalette(pal);这样文本框中的字体就变成红色的了。如果要通过调用色板来选择字体颜色,可以加上下列代码,其中的按钮创建,连接等省略void FindDialog:setFontQPalette palette = lineEdit-palette();const QColor & color =QColorDialog:getColor(palette.color(QPalette:Base),this);if(color.isValid()palette.setColor(QPalette:Text,color);lineEdit-setPalette(palette);Qt中控件的字体颜色设置 一般的属于QWidget子类的一些控件,可以直接使用样式表,例如label-setStyleSheet(color:white);其他的一些不属于QWidget子类的控件,可以考虑设置其前景色,例如各种ViewtreeWidgetItem-setForeground(0,QBrush(QColor(Qt:white);QT中设置字体和更改字体颜色 2010-08-12 14:54:08| 分类: linux编程 | 标签:字体 lineedit qpalette setfont palette |字号大中小 订阅 对一个文本框lineEdit设置字体,首先我建了一个按钮setFontButton用来设置并定义了它的相应函数setFont,将setFontButton添加到布局中,并通过connect()设置与setFont()关联,然后定义setFont如下 codevoid FindDialog:setFont()bool ok;const QFont& font = QFontDialog:getFont(&ok,lineEdit-font(),this,tr(fontDialog);if(ok)lineEdit-setFont(font);/code这样就可以设置字体了改变字体或按钮的颜色:先加入色板类#include 比如要设置lineEdit里字体的颜色为红色QPalette pal =lineEdit-QPalette();pal-setColor(QPalette:Text,QColor(255,0,0);lintEdit-setPalette(pal);这样文本框中的字体就变成红色的了。如果要通过调用色板来选择字体颜色,可以加上下列代码,其中的按钮创建,连接等省略codevoid FindDialog:setFontQPalette palette = lineEdit-palette();const QColor & color =QColorDialog:getColor(palette.color(QPalette:Base),this);if(color.isValid()palette.setColor(QPalette:Text,color);lineEdit-setPalette(palette);/codeQt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet()) 收藏 在Qt中设置widget背景颜色或者图片方法很多种:重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等。 但是各种方法都有其注意事项,如果不注意则很容易陷入麻烦中。1:setStyleSheet()这个函数我一直很喜欢使用,因为只要写一句就可以实现效果,比其他方法都简单,但是其却有一个很值得注意的地方,也就是这个地方让我大吃苦头。亦即:该函数只能用于设置有父窗口的子窗口的背景!如果一个窗口没有子窗口,则无法使用该函数来设置背景颜色或图 片!:同时:对于一个父窗口而言:如果我们用setStyleShette设置了其样式,而对于其子窗口:如果没有用同样的函数来设 置的话, 则其子窗口的样式和其父窗口完全一致,亦即:其集成了自己父窗口的样式!:延伸:对顶层窗口(没有父窗口),其有若干个子窗口,则当我们用setStyleShette来设置这个顶层窗口的样式后,依据可知:该父窗口本身 没有任何变化,亦即设置没有生效;而其子窗口:只要子窗口本身没有用setStyleShette来设置自己的样式表,则其就是用的自己父窗口的样式 表!例如:主窗口(没有父类)为MainWinMainWin:MainWin()this-setStyleSheet(background-image:url(:/bmp/IMG_0345.JPG);iButton = new QPushButton(this);iLabel = new QLabel(iButton);运行一下,效果如下:亦即:虽然我们设置的是顶层的父窗口,但是该样式却是在其子窗口中生效,而顶层父窗口没有任何变化! 这验证了。修改一下上例代码:MainWin:MainWin()this-setStyleSheet(background-image:url(:/bmp/IMG_0345.JPG);iButton = new QPushButton(this);iLabel = new QLabel(iButton);iLabel-setStyleSheet(background-image:url(:/bmp/1257253475842.jpg);则运行效果如下:可见:子窗口只有调用setStyleSheet()设置了自己的样式后才可以隔断父窗口的样式,否则其将是用父窗口的样式。再修改一下代码:MainWin:MainWin()iButton = new QPushButton(this);iButton -setStyleSheet(background-image:url(:/bmp/IMG_0345.JPG);iLabel = new QLabel(iButton); 运行一下,效果如下:可见:设置有父窗口的子窗口时:setStyleSheet()一定生效! 后来我又思考了一个问题,那就是:对于顶层父窗口,如果我 setStyleSheet()设置了样式表,而对其子窗口,我用其他方法,比如用QPalette调色板来设置背景图片/颜色,这时子窗口的背景到底是 由继承自父窗口的样式表决定呢还是由子窗口本身的QPalette调色板决定呢?再次修改代码:MainWin:MainWin()this-setStyleSheet(background-image:url(:/bmp/IMG_0345.JPG);iButton = new QPushButton(this);iLabel = new QLabel(iButton);QPalette palette; palette.setBrush(iLabel-backgroundRole(),QBrush(QImage(:/bmp/1257253475842.jpg);iLabel-setPalette(palette);iLabel-setAutoFillBackground(true);此段代码中我用QPalette来设置子窗口的背景图片,看下到底是样式表还是调色板生效,效果如下: 由此可见:一旦顶层窗口设置了样式表,则其子窗口无论用什么方法来设置背景,都会不生效!那如果不是顶层窗口而仅仅是一般窗口设置了样式表呢?再次修改代码:MainWin:MainWin()iButton = new QPushButton(this);iButton -setStyleSheet(background-image:url(:/bmp/IMG_0345.JPG);iLabel = new QLabel(iButton);QPalette palette; palette.setBrush(iLabel-backgroundRole(),QBrush(QImage(:/bmp/1257253475842.jpg);iLabel-setPalette(palette);iLabel-setAutoFillBackground(true);运行效果同上,这说明:不管是顶层窗口还是一般窗口,只要用setStyleSheet设置了样式表,则其子窗口用其它方式设置背景颜色/图片均不生效,只能用同样方式setStyleSheet来设置更改!为了验证上边的结论,再次修改代码:MainWin:MainWin()iButton = new QPushButton(this);iLabel = new QLabel(iButton);QPalette palette; palette.setBrush(iLabel-backgroundRole(),QBrush(QImage(:/bmp/1257253475842.jpg);iLabel-setPalette(palette);iLabel-setAutoFillBackground(true);运行一下:此时调色板才生效,这也间接证明了上述结论。=总结:1:不要在顶层窗口(无父类的窗口)中使用setStyleSheet() ,否则其一父窗口的背景不会改变,其次其子窗口的背景设置方法变得局限唯一,不能再使用其它方法!2:如果一个一般窗口(非顶层窗口)还有子窗口,那最好不要使用setStyleSheet()来设置其背景颜色,因为虽然此时该窗口的背景设置是生效 的,但是其子窗口的背景设置也变得局限唯一,只能使用setStyleSheet,而不能使用其它方法! 当然:你如果就是只想使用这种方法,那也完全可以!说白了就是:不要再MainWindow中使用setStyleSheet()!而上边之所以强调拓宽子窗口设置背景的方法范围,这是因为:如果只能用setStyleSheet样式表来设置背景图片的话,该图片是无法缩放的,如果 其大小与widget窗口大小不相符,则我们无法用程序来实现图片的缩放,除非我们直接处理图片使其大小与widget窗口相符; 而如果不局限于用setStyleSheet样式表来设置的话,我们可以选择用QPalette调色版,其内部setBrush()之前,我们完全可以先 对图片进行scale缩放再刷到窗口上,这样就避免直接去处理图片,灵活性强一点!=注意:该文只针对QWidget体系,并不适用用QGraphicsWidget体系!关于这两种体系之间的区分,详见文章/NRC_DouNingBo/archive/2010/05/09/5571149.aspx届云计算大会门票抢购:史上最低价,每日限5张! 【分享季1】:网友推荐130个经典资源,分享再赠分!Qt将ttf文件设置为默认字体 分类: Qt编程2012-03-23 15:1427人阅读评论(0)收藏举报cpp view plaincopyprint?1. /将字体文件名传给addApplicationFont,得到字体的Id 2. int fontId = QFontDatabase:addApplicationFont(./res/msyh.ttf); 3. /将字体Id传给applicationFontFamilies,得到一个QStringList,其中的第一个元素为新添加字体的famil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年二级化妆品配方师考试理论知识全真模拟试卷及答案(共十二套)
- 2025年山东省聊城市高唐县三下数学期末质量跟踪监视模拟试题含答案解析
- 2026中国锂离子电池回收体系构建与循环经济模式报告
- 2026中国智慧城市建设项目投资规模与落地实效评估专题报告
- 2026乙二醇市场价格波动深度分析及供应链发展趋势研究报告
- 2026磁铁行业并购重组案例分析与资源整合策略报告
- 2026中国土壤修复行业市场发展驱动因素及投资回报预测报告
- 2026中国电接触材料市场规模预测与竞争策略研究报告
- 2026银行非存款业务发展线上化方案及金融产品创新方向与跨界合作机会深度解析报告
- 2026中国自动驾驶高精地图市场竞争格局与商业模式研究报告
- 贵州省望谟县2025年上半年公开招聘城市协管员试题含答案分析
- DB11T 593-2025 高速公路清扫保洁质量与作业要求
- 中国石油和化工勘察设计协会电气设计专业委员会公告2025版
- 癫痫的中医护理
- 从蒙古族文化生活中挖掘中学物理实验资源:开发应用与成效探究
- CJ/T 107-2013城市公共汽、电车候车亭
- 医院会计笔试题目及答案
- 生物安全二级实验室操作规范培训
- DLT 572-2021 电力变压器运行规程
- 《初中七年级新生家长会》课件模板(五套)
- SL721-2015水利水电工程施工安全管理导则
评论
0/150
提交评论