首页 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
资讯 业界资讯 软件杂谈 编程开发 网站建设 网络观查 搜索引擎 移动应用 网站运营 网络地图
开发 移动开发 Web前端 架构设计 编程语言 互联网 数据库 系统运维 云计算 开发杂谈
[架构设计] 【Qt5开发及实例】11、QPalette调色板使用
【Qt5开发及实例】11、QPalette调色板使用

我做的这个不知道为什么有两个功能无法显示,也没有报错,我暂时是想不出什么好办法= =

实现目标




palette.h


/**
* 书本:【Qt5开发及实例】
* 功能:实现调色板的使用QPalette
* 文件:paletee.h
* 时间:2015年1月3日12:21:53
* 作者:cutter_point
*/
#ifndef PALETTE_H
#define PALETTE_H

#include <QDialog>
#include <QComboBox>
#include <QLabel>
#include <QTextEdit>
#include <QPushButton>
#include <QLineEdit>

class Palette : public QDialog
{
  Q_OBJECT

public:
  Palette(QWidget *parent = 0);
  ~Palette();
  //我们把这个界面分为两个部分,左边和右边
  //左边界面的创建
  void createCtrlFrame();
  //右边界面的创建
  void createContentFrame();
  //颜色下拉列表框中输入颜色的工作
  void fillColorList(QComboBox *);

private slots:  //槽函数,背景色,前景色显示
  void ShowWindow();
  void ShowWindowText();
  void ShowButton();
  void ShowButtonText();
  void ShowBase();

private:
  QFrame *ctrlFrame;      //颜色选择板,左板块
  QLabel *windowLabel;
  QComboBox *windowComboBox;
  QLabel *windowTextLabel;
  QComboBox *windowTextComboBox;
  QLabel *buttonLabel;
  QComboBox *buttonComboBox;
  QLabel *buttonTextLabel;
  QComboBox *buttonTextComboBox;
  QLabel *baseLabel;
  QComboBox *baseComboBox;

  QFrame *contentFrame;   //具体显示的面板,也就是右半块
  QLabel *label1;
  QComboBox *comboBox1;
  QLabel *label2;
  QLineEdit *lineEdit2;
  QTextEdit *textEdit;
  QPushButton *OkBtn;
  QPushButton *CancelBtn;



};

#endif // PALETTE_H

palette.cpp


/**
* 书本:【Qt5开发及实例】
* 功能:实现具体的调色板
* 文件:palette.h
* 时间:2015年1月3日12:20:05
* 作者:cutter_point
*/
#include "palette.h"

#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QGridLayout>
#include <QtDebug>

Palette::Palette(QWidget *parent)
  : QDialog(parent)
{//构造函数
  createCtrlFrame();    //构造左边界面
  createContentFrame();   //右边

  QHBoxLayout *mainLayout = new QHBoxLayout(this);
  mainLayout->addWidget(ctrlFrame);   //左边的界面添加进入
  mainLayout->addWidget(contentFrame);    //右边界面添加进入

}

//创建左边的颜色选择区
void Palette::createCtrlFrame()
{
  ctrlFrame = new QFrame;
  windowLabel = new QLabel(tr("QPalette::Window: "));   //显示背景色的选择
  windowComboBox = new QComboBox;
  fillColorList(windowComboBox);    //把所有的颜色都添加到这个下拉框里面
  connect(windowComboBox, SIGNAL(activated(int)), this, SLOT(ShowWindow()));

  windowTextLabel = new QLabel(tr("QPalette::WindowText: "));   //显示前景色的选择
  windowTextComboBox = new QComboBox;
  fillColorList(windowTextComboBox);    //把所有的颜色都添加到这个下拉框里面
  connect(windowTextComboBox, SIGNAL(activated(int)), this, SLOT(ShowWindowText()));

  buttonLabel = new QLabel(tr("QPalette::Button: "));   //显示前景色的选择
  buttonComboBox = new QComboBox;
  fillColorList(buttonComboBox);    //把所有的颜色都添加到这个下拉框里面
  connect(buttonComboBox, SIGNAL(activated(int)), this, SLOT(ShowButton()));

  buttonTextLabel = new QLabel(tr("QPalette::buttonText: "));   //显示前景色的选择
  buttonTextComboBox = new QComboBox;
  fillColorList(buttonTextComboBox);    //把所有的颜色都添加到这个下拉框里面
  connect(buttonTextComboBox, SIGNAL(activated(int)), this, SLOT(ShowButtonText()));

  baseLabel = new QLabel(tr("QPalette::base: "));   //显示前景色的选择
  baseComboBox = new QComboBox;
  fillColorList(baseComboBox);    //把所有的颜色都添加到这个下拉框里面
  connect(baseComboBox, SIGNAL(activated(int)), this, SLOT(ShowBase()));

  //网格布局
  QGridLayout *mainLayout = new QGridLayout(ctrlFrame);   //对左边的界面进行布局
  mainLayout->setSpacing(20);   //垂直和水平之间的间隔
  mainLayout->addWidget(windowLabel, 0, 0);
  mainLayout->addWidget(windowComboBox, 0, 1);
  mainLayout->addWidget(windowTextLabel, 1, 0);
  mainLayout->addWidget(windowTextComboBox, 1, 1);
  mainLayout->addWidget(buttonLabel, 2, 0);
  mainLayout->addWidget(buttonComboBox, 2, 1);
  mainLayout->addWidget(buttonTextLabel, 3, 0);
  mainLayout->addWidget(buttonTextComboBox, 3, 1);
  mainLayout->addWidget(baseLabel, 4, 0);
  mainLayout->addWidget(baseComboBox, 4, 1);

}

//右边窗口,显示颜色
void Palette::createContentFrame()
{
  contentFrame = new QFrame;    //创建右边界面
//  contentFrame->setFrameStyle(QFrame::Shadow_Mask);
  label1 = new QLabel(tr("please select one value: "));    //请不要吐槽我的English
  comboBox1 = new QComboBox;
  comboBox1->addItem(tr("1"));
  comboBox1->addItem(tr("2"));
  comboBox1->addItem(tr("3"));

  label2 = new QLabel(tr("please input String: "));    //请不要吐槽我的English
  lineEdit2 = new QLineEdit;

  textEdit = new QTextEdit;

  //网格布局
  QGridLayout *TopLayout = new QGridLayout;
  TopLayout->addWidget(label1, 0, 0);
  TopLayout->addWidget(comboBox1, 0, 1);
  TopLayout->addWidget(label2, 1, 0);
  TopLayout->addWidget(lineEdit2, 1, 1);
  TopLayout->addWidget(textEdit, 2, 0, 1, 2);   //行,列,占用行, 占用列,还有一个对齐方式没写出来

  OkBtn = new QPushButton(tr("ok"));    //确定
  CancelBtn = new QPushButton(tr("cancel"));    //取消

  QHBoxLayout *BottomLayout = new QHBoxLayout;
  BottomLayout->addStretch(1);    //一个弹簧
  BottomLayout->addWidget(OkBtn);
  BottomLayout->addWidget(CancelBtn);

  //整体垂直布局
  QVBoxLayout *mainLayout = new QVBoxLayout(contentFrame);
  mainLayout->addLayout(TopLayout);
  mainLayout->addLayout(BottomLayout);

}

//显示背景颜色
void Palette::ShowWindow()      //这个不知道为什么显示不出来!!!有的说是windows不支持,我也不太清楚2015年1月3日13:51:44
{
  QStringList colorList = QColor::colorNames();   //得到所有的颜色序列
  QColor color = QColor(colorList[windowComboBox->currentIndex()]);   //取得当前选中的序号,得到颜色
  QPalette p = contentFrame->palette();   //得到右边的调色板
  p.setColor(QPalette::Window, color);   //修改相应位置的颜色
  contentFrame->setPalette(p);     //把调色板的值给应用上去
  contentFrame->update();   //刷新界面,得到显示
  /*
   * QStringList colorList = QColor::colorNames();
    QColor color = QColor(colorList[cbbWindow->currentIndex()]);
    QPalette p = contentFrame->palette();
    p.setColor(QPalette::Window,color);
    contentFrame->setPalette(p);
   * */
}

//显示前景色
void Palette::ShowWindowText()
{
  QStringList colorList = QColor::colorNames();   //得到所有的颜色序列
  QColor color = QColor(colorList[windowTextComboBox->currentIndex()]);   //取得当前选中的序号,得到颜色

  QPalette p = contentFrame->palette();   //得到右边的调色板
  p.setColor(QPalette::WindowText, color);   //修改相应位置的颜色
  contentFrame->setPalette(p);     //把调色板的值给应用上去

//  contentFrame->update();
}

//按钮背景颜色
void Palette::ShowButton()  //这个不知道为什么显示不出来!!!有的说是windows不支持,我也不太清楚2015年1月3日13:51:44
{
  QStringList colorList = QColor::colorNames();   //得到所有的颜色序列
  QColor color = QColor(colorList[buttonComboBox->currentIndex()]);   //取得当前选中的序号,得到颜色

  QPalette p = contentFrame->palette();   //得到右边的调色板
  p.setColor(QPalette::Button, color);   //修改相应位置的颜色
  contentFrame->setPalette(p);     //把调色板的值给应用上去

  contentFrame->update();
}

//按钮上文字的显示
void Palette::ShowButtonText()
{
  QStringList colorList = QColor::colorNames();   //得到所有的颜色序列
  QColor color = QColor(colorList[buttonTextComboBox->currentIndex()]);   //取得当前选中的序号,得到颜色

  QPalette p = contentFrame->palette();   //得到右边的调色板
  p.setColor(QPalette::ButtonText, color);   //修改相应位置的颜色
  contentFrame->setPalette(p);     //把调色板的值给应用上去

//  contentFrame->update();
}

//文本框背景色的选择
void Palette::ShowBase()
{
  QStringList colorList = QColor::colorNames();   //得到所有的颜色序列
  QColor color = QColor(colorList[baseComboBox->currentIndex()]);   //取得当前选中的序号,得到颜色

  QPalette p = contentFrame->palette();   //得到右边的调色板
  p.setColor(QPalette::Base, color);   //修改相应位置的颜色
  contentFrame->setPalette(p);     //把调色板的值给应用上去

//  contentFrame->update();
}

//fillColorList用于插入颜色
void Palette::fillColorList(QComboBox *comboBox)
{
  QStringList colorList = QColor::colorNames();   //得到所有颜色名
  QString color;

  foreach(color, colorList)   //循环取出colorList里面的值
    {
      QPixmap pix(QSize(70, 20));   //这个pix作为显示颜色的图标
      pix.fill(QColor(color));    //为pix填充当前遍历到的颜色
      comboBox->addItem(QIcon(pix), NULL);    //把pix作为图标插入进去
      comboBox->setIconSize(QSize(70, 20));     //把选项设置成和pix一样的大小
      comboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents);     //设置下拉框的大小符合内容大小

    }

}

Palette::~Palette()
{

}

实现结果:





还有就是我发现上传东西还是有总空间限制的,就是说上传多了,空间大小就不够了,坑爹的是我居然只有60M,我也是呵呵了,这真是金贵,我还不如搞个网盘呢


 此文从网络中自动搜索生成,不代表本网站赞成被搜索网站的内容或立场    查看原文
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 新闻资讯 小游戏 Chinese Culture 股票 三丰软件 开发 中国文化 网文精选 阅读网 看图 日历 万年历 2018年9日历
2018-9-26 14:29:50
 
  网站联系 软件世界网-www.sjsjw.com ©2014 蜀ICP备06016416号 三峰网旗下网站