QT中如何将图片作为按键背景色以及中文显示

 

                                    QT中如何将图片作为按键的背景色以及中文显示

 

通过下述代码来讲解:

  1 #include <QApplication>
  2 #include <QPushButton>
  3 #include <QLabel>
  4 #include <QGridLayout>
  5 #include <QTextCodec>
  6
  7 int main(int argc,char *argv[])
  8 {
  9     QApplication app(argc,argv);
 10
 11    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
 12    QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf8"));
 13    QTextCodec::setCodecForTr( QTextCodec::codecForName("utf8"));
 14
 15
 16    QWidget *widget = new QWidget();
 17    widget->setFixedSize(800, 600);
 18    widget->move(200,200);
 19
 20
 21    QPixmap *pixmap = NULL;
 22    pixmap = new QPixmap(200,150);
 23    pixmap->load(":/images/butterfly1.png");
 24
 25    QIcon *icon = new QIcon(*pixmap);
 26
 27    QPushButton *button = new QPushButton(*icon,"", widget);
 28    button->setIconSize(QSize(190, 150));
 29    button->setFixedSize(200,150);
 30
 31    QLabel *label = new QLabel(widget);
 32    QLabel *label1 = new QLabel(widget);
 33    label->setPixmap(*pixmap);
 34    label->setFixedSize(200, 150);
 35    label1->setText("Qt中文显示:");
 36    label1->setStyleSheet("font-size : 53px");
 37
 38    QPalette pe;
 39    pe.setColor(QPalette::WindowText,Qt::blue);
 40    label1->setPalette(pe);

 43    QGridLayout *layout=new QGridLayout;
 44    layout->addWidget(button,0,0);
 45    layout->addWidget(label,0,1);
 46    layout->addWidget(label1,1,0,2,1);
 47    widget->setLayout(layout);
 48    widget->showNormal();
 49    return app.exec();
 50 }

1.首先讲解一下如何将图片设置为按键的背景色:

         方法一:使用代码的方式
         QPixmap *pixmap = NULL;    //创建保存图片的指针
 22    pixmap = new QPixmap(200,150);   //为该指针分配空间
 23    pixmap->load(":/images/butterfly1.png");//将图片导入该空间内
 24
 25    QIcon *icon = new QIcon(*pixmap);
 26
 27    QPushButton *button = new QPushButton(*icon,"", widget);  //创建按钮并将其背景色设置为图片
 28    button->setIconSize(QSize(190, 150));         //设置图片在按键中所占空间
 29    button->setFixedSize(200,150);                   //设置按键的大小

       方法二:使用qt-creator 工具。

        首先要创建资源文件。

       点击按键所在的ui界面-----〉右下方有关于按键的属性设置----->选择ICON-----〉进入资源文件选择---->再选择图片。

通过以上代码就可以将图片设置为按键的背景色了。

 

2.再讲解一下中文的显示(主要通过以下三行代码实现):

       QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
     QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf8"));
     QTextCodec::setCodecForTr( QTextCodec::codecForName("utf8"));

    在此读者就必须了解gb2312  utf8  gbk等常见编码方式的区别,以及各系统下默认的中文编码方式

            通常在linux中默认的方式为uft8,而在window下默认的方式为gbk。

            所以代码中使用了utf8

     其次就需要了解上面三个函数的作用(都可从其后缀猜出其功能,通常程序中最好是将三个函数都实现):

              setCodecForCStrings();使中文字符串的中文显示生效。

              setCodecForLocale():用于设置和对本地文件系统读写时候的默认编码

           格式。比如通过流读取一个文件内容时的编码格式。或者通过qDebug()

           输出打印信息时的编码。

           setCodecForTr():设置tr函数的默认字符串编码。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值