http://www.linuxidc.com/Linux/2011-03/33248.htm
一個簡單的按鈕圖片加載代碼,一般人出現的問題都是加載的圖片可能會很小,怎麼解決這個問題呢?來看看下面的代碼吧,對於相關的迷惑點我會給出講解,同時在學習這個代碼的過程中我們也學學其他的一些功能實現。如何顯示中文、如何設置字體以及顏色等。
#include <QApplication>
#include <QPushButton>
#include <QLabel>
#include <QGridLayout>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
//以下三行用於支持中文的現實
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb2312"));
QTextCodec::setCodecForTr( QTextCodec::codecForName("gb2312"));
QWidget *widget = new QWidget();
widget->setFixedSize(800, 600);
widget->move(200,200);
QPixmap *pixmap = NULL;
pixmap = new QPixmap(200, 150);
pixmap->load(":/castle.jpg");
QIcon *icon = new QIcon(*pixmap);
QPushButton *button = new QPushButton(*icon, "", widget);
//以下代碼爲加載圖片的關鍵所在,因爲默認加載的圖片大小可能與按鈕本身的尺寸相差較大,
//需要自己來調節,所以可以在此人爲的指定加載後的圖片大小
button->setIconSize(QSize(190, 150));
button->setFixedSize(200, 150);
QLabel *label = new QLabel(widget);
QLabel *label1=new QLabel(widget);
label->setPixmap(*pixmap);
label->setFixedSize(200, 150);
label1->setText("Qt 按鈕背景圖片的加載");
//以下代碼用於設置label1字體顯示的大小
label1->setStyleSheet("font-size : 53px");
//以下三句代碼與以上代碼可以實現相同的功能,但是區別在於,以下三句代碼的作用範圍是對整個界面的字體都產生作用。
//QFont font = app .font();
//font.setPointSize(53);
//app.setFont(font);
//設置label1的顏色
QPalette pe;
pe.setColor(QPalette::WindowText,Qt::blue);
label1->setPalette(pe);
QGridLayout *layout=new QGridLayout;
layout->addWidget(button,0,0);
layout->addWidget(label,0,1);
layout->addWidget(label1,1,0,2,1);
widget->setLayout(layout);
widget->showNormal();
return app.exec();
}