当前位置: 首页 > news >正文

建设网站简单教程wordpress 留言本插件

建设网站简单教程,wordpress 留言本插件,成都网站设计公司 网络服务,外贸网站流量分析文章目录QPalette调色板类前言代码知识点讲解QPalette调色板类 前言 Qt提供的调色板类QPalette专门用于管理部件的外观显示#xff0c;相当于部件或对话框的调色板#xff0c;管理他们所有的颜色信息。每个部件都包含一个QPalette对象#xff0c;在显示时#xff0c;按照… 文章目录QPalette调色板类前言代码知识点讲解QPalette调色板类 前言 Qt提供的调色板类QPalette专门用于管理部件的外观显示相当于部件或对话框的调色板管理他们所有的颜色信息。每个部件都包含一个QPalette对象在显示时按照它的QPalette对象中对各部分各状态下的颜色的描述进行绘制使用调色板类对部件只能进行一些简单的调色如果想要一些复杂的设置那么就得使用样式表进行设置。 下面用到了一个简单的demo对QPalette调色板类的使用进行说明 最终效果如下图所示 通过左边的下拉框对颜色进行选择并对指定部件赋予颜色 代码 先贴代码吧后续对代码进行讲解 dialog.h #ifndef DIALOG_H #define DIALOG_H#include QDialog #include QFrame #include QComboBox #include QLabel #include QLineEdit #include QTextEdit #include QGridLayout #include QHBoxLayout #include QPushButton #include QVBoxLayout class Dialog : public QDialog {Q_OBJECTpublic:Dialog(QWidget *parent 0);~Dialog();//创建边框区域void createCtrlFrame();//创建右边内容区域void createContentFrame();//给组合框添加颜色列表void fillColorList(QComboBox*comboBox); public slots:void ShowWindow(int index);void ShowWindowText(int index);void ShowButton(int index);void ShowButtonText(int index);void ShowBase(int index);private:QFrame* m_ctrlFrame;QLabel* m_windowLabel;QComboBox* m_windowComboBox;QLabel* m_windowTextLabel;QComboBox* m_windowTextComboBox;QLabel* m_buttonLabel;QComboBox* m_buttonComboBox;QLabel* m_buttonTextLabel;QComboBox* m_buttonTextComboBox;QLabel* m_baseLabel;QComboBox* m_baseComboBox;QFrame* m_contentFrame;QLabel* m_label1;QLabel* m_label2;QComboBox* m_comboBox1;QLineEdit* m_lineEdit;QTextEdit* m_textEdit;QPushButton* m_okBtn;QPushButton* m_cancelBtn; };#endif // DIALOG_H dialog.cpp #include dialog.hDialog::Dialog(QWidget *parent): QDialog(parent) {createCtrlFrame();createContentFrame();QHBoxLayout* mainLayout new QHBoxLayout(this);mainLayout-addWidget(m_ctrlFrame);mainLayout-addWidget(m_contentFrame);}Dialog::~Dialog() {}void Dialog::createCtrlFrame() {m_ctrlFrame new QFrame;m_ctrlFrame-setFrameStyle(QFrame::Sunken|QFrame::Box);m_windowLabel new QLabel(QPalette::Window);m_windowComboBox new QComboBox;//将颜色填充到ComboBox的每一个项中fillColorList(m_windowComboBox);connect(m_windowComboBox,SIGNAL(activated(int)),this,SLOT(ShowWindow(int)));m_windowTextLabel new QLabel(QPalette::WindowText);m_windowTextComboBox new QComboBox;fillColorList(m_windowTextComboBox);connect(m_windowTextComboBox,SIGNAL(activated(int)),this,SLOT(ShowWindowText(int)));m_buttonTextLabel new QLabel(QPalette::WindowText);m_buttonTextComboBox new QComboBox;fillColorList(m_buttonTextComboBox);connect(m_buttonTextComboBox,SIGNAL(activated(int)),this,SLOT(ShowButtonText(int)));m_buttonLabel new QLabel(QPalette::Button);m_buttonComboBox new QComboBox;fillColorList(m_buttonComboBox);connect(m_buttonComboBox,SIGNAL(activated(int)),this,SLOT(ShowButton(int)));m_baseLabel new QLabel(QPalette::Base);m_baseComboBox new QComboBox;fillColorList(m_baseComboBox);connect(m_baseComboBox,SIGNAL(activated(int)),this,SLOT(ShowBase(int)));QGridLayout* mainLayout new QGridLayout(m_ctrlFrame);mainLayout-setSpacing(20);mainLayout-addWidget(m_windowLabel,0,0);mainLayout-addWidget(m_windowComboBox,0,1);mainLayout-addWidget(m_windowTextLabel,1,0);mainLayout-addWidget(m_windowTextComboBox,1,1);mainLayout-addWidget(m_buttonLabel,2,0);mainLayout-addWidget(m_buttonComboBox,2,1);mainLayout-addWidget(m_buttonTextLabel,3,0);mainLayout-addWidget(m_buttonTextComboBox,3,1);mainLayout-addWidget(m_baseLabel,4,0);mainLayout-addWidget(m_baseComboBox,4,1);}void Dialog::createContentFrame() {m_contentFrame new QFrame;//自动填充背景设置为truem_contentFrame-setAutoFillBackground(true);m_label1 new QLabel(请选择一个值);m_label2 new QLabel(请输入字符串);m_comboBox1 new QComboBox;m_lineEdit new QLineEdit;m_textEdit new QTextEdit;m_okBtn new QPushButton(QString(确认));m_cancelBtn new QPushButton(QString(取消));m_okBtn-setAutoFillBackground(true);QGridLayout* topLayout new QGridLayout;topLayout-addWidget(m_label1,0,0);topLayout-addWidget(m_comboBox1,0,1);topLayout-addWidget(m_label2,1,0);topLayout-addWidget(m_lineEdit,1,1);topLayout-addWidget(m_textEdit,2,0,1,2);QHBoxLayout* bottomLayout new QHBoxLayout;bottomLayout-addWidget(m_okBtn);bottomLayout-addWidget(m_cancelBtn);QVBoxLayout* mainLayout new QVBoxLayout(m_contentFrame);mainLayout-addLayout(topLayout);mainLayout-addLayout(bottomLayout); }void Dialog::fillColorList(QComboBox *comboBox) {//获取到各个颜色的名字QStringList colorList QColor::colorNames();QString color;foreach(color,colorList){QPixmap pix(QSize(70,20));pix.fill(QColor(color));comboBox-addItem(QIcon(pix),nullptr);comboBox-setIconSize(QSize(70,20));//适应方式是根据内容来进行适应comboBox-setSizeAdjustPolicy(QComboBox::AdjustToContents);} }void Dialog::ShowWindow(int index) {QStringList colorList QColor::colorNames();//拿到颜色名字QColor color QColor(colorList[index]);QPalette p m_contentFrame-palette();p.setColor(QPalette::Window,color);m_contentFrame-setPalette(p);//触发窗口重新绘制功能更新窗口m_contentFrame-update();}void Dialog::ShowWindowText(int index) {QStringList colorList QColor::colorNames();//拿到颜色名字QColor color QColor(colorList[index]);QPalette p m_contentFrame-palette();//会改变框框中label字体颜色的值而button字体颜色不会改变p.setColor(QPalette::WindowText,color);m_contentFrame-setPalette(p);//触发窗口重新绘制功能更新窗口m_contentFrame-update(); }void Dialog::ShowButton(int index) {QStringList colorList QColor::colorNames();//拿到颜色名字QColor color QColor(colorList[index]);QPalette p m_contentFrame-palette();p.setColor(QPalette::Button,color);m_contentFrame-setPalette(p);//触发窗口重新绘制功能更新窗口m_contentFrame-update(); }void Dialog::ShowButtonText(int index) {QStringList colorList QColor::colorNames();//拿到颜色名字QColor color QColor(colorList[index]);QPalette p m_contentFrame-palette();p.setColor(QPalette::ButtonText,color);m_contentFrame-setPalette(p);//触发窗口重新绘制功能更新窗口m_contentFrame-update(); }void Dialog::ShowBase(int index) {QStringList colorList QColor::colorNames();//拿到颜色名字QColor color QColor(colorList[index]);QPalette p m_contentFrame-palette();//设置底色p.setColor(QPalette::Base,color);m_contentFrame-setPalette(p);//触发窗口重新绘制功能更新窗口m_contentFrame-update(); } 知识点讲解 1、将颜色作为下拉框的选项 在本工程中是使用如下fillColorList函数进行实现的 void Dialog::fillColorList(QComboBox *comboBox) {//获取到各个颜色的名字QStringList colorList QColor::colorNames();QString color;foreach(color,colorList){QPixmap pix(QSize(70,20));//对pix进行颜色填充pix.fill(QColor(color));//将pix左右Item添加到下拉框中comboBox-addItem(QIcon(pix),nullptr);//尺寸大小设置的要与上面QPixmap的大小一致comboBox-setIconSize(QSize(70,20));//适应方式是根据内容来进行适应comboBox-setSizeAdjustPolicy(QComboBox::AdjustToContents);} }2、改变整个部件的颜色但是这个改变不包括这个部件内部的部件 注意m_contentFrame-setAutoFillBackground(true);这个得设置否则这个设置会失败。 //1、先拿到部件的调色板设置 QPalette p m_contentFrame-palette(); //2、再设置QPalette::Window的颜色 p.setColor(QPalette::Window,color); //将部件的调色板重新设置为上面的调色板 m_contentFrame-setPalette(p); //主动触发窗口重新绘制功能更新窗口 m_contentFrame-update();3、改变部件内部嵌套的Label的字体颜色 QPalette p m_contentFrame-palette(); //会改变部件中嵌套的label字体颜色而button字体颜色不会改变 p.setColor(QPalette::WindowText,color); m_contentFrame-setPalette(p); //触发窗口重新绘制功能更新窗口 m_contentFrame-update();4、改变部件内部嵌套的button的边框颜色 注意m_okBtn-setAutoFillBackground(true);这个得设置否则m_okBtn这个按钮对于边框颜色的设置会失败。 QPalette p m_contentFrame-palette(); p.setColor(QPalette::Button,color); m_contentFrame-setPalette(p); //触发窗口重新绘制功能更新窗口 m_contentFrame-update();5、改变部件内部嵌套的button的字体颜色 QPalette p m_contentFrame-palette(); //改变部件内部嵌套的button的字体颜色 p.setColor(QPalette::ButtonText,color); m_contentFrame-setPalette(p); //触发窗口重新绘制功能更新窗口 m_contentFrame-update();6、改变部件内部嵌入的文本输入部件我这里是使用QTextEdit对象的背景色 QPalette p m_contentFrame-palette(); //设置底色 p.setColor(QPalette::Base,color); m_contentFrame-setPalette(p); //触发窗口重新绘制功能更新窗口 m_contentFrame-update();其实还有其他的参数但是不可能一个个都列举出来大家可以参考Qt的帮助文档来找到你想要的参数。 本篇先到这就结束了不过呢以后如果对于这个QPalette类有其他用法我再来更新这篇博客非常感谢您能看到这里
http://www.hkea.cn/news/14334279/

相关文章:

  • 仿牌网站专用vps好f123网站
  • 北京网站建设运营网络运营商ip地址
  • 可以免费做推广的网站重庆网站建设的培训机构
  • 做网站需要备注号码微信网站怎么建设
  • 上海网站建设科技公司国家建设工程安全质量监督网站
  • 网站建设支出账务处理嘉兴网站建设与管理专业
  • 网站开发模块学些什么软件电商购物网站建设
  • 游戏网站平台怎么做推广营销策划方案
  • 辽宁东方建设工程有限公司网站莱芜百度网站建设
  • 建设协会网站网页剪辑app
  • 外国做图网站北京全包圆装修公司好不好
  • 网站系统 外贸用php怎么做网站
  • go 做视频网站网络舆情处置的五个步骤
  • 网络上建个网站买东西多少钱服务器更改wordpress
  • 网站做seo必要的结构如何分析竞争对手的网站
  • 佛山网站建设是哪个好做一个公司网站需要多少钱
  • 常州网站建设咨询怎么用wordpress仿站
  • 北京制作网站报价外贸英语网站
  • 360网站收录提交入口大全手机模板网站模板下载网站有哪些内容
  • 辽宁工程建设信息网网站武都区建设局网站
  • 微信页面设计网站WordPress社交评论
  • 上海网站建设联怎么样建设网站赚钱
  • 网站建设seo 视频教程鲜花店网站建设的规模设想
  • 做美团网站需要多少钱网站建设300
  • 电子商务网站概念wordpress 好用主题
  • 府网站建设先进个人展示商品的网站怎么做
  • 网站建设与管理实践收获中企动力网站后台
  • vue做网站电子商务网站建设与管理总结
  • 多多返利网站建设宁波seo推荐
  • 北京工程质量建设协会网站做公众号需要做网站吗