Qt学习笔记(5)——CommandButton

    好了,上面是对该控件的一些简单介绍,下面我们建一个具体的工程来运用一下这个控件,看看它的效果!

   老规矩,第一步还是建立一个Gui的应用程序,在中心区域添加一个QLabel 控件、QScrollArea控件和QCommandLinkButton控件,具体布局如下图所示:


185337_uVhk_1997634.png

界面设计好后我们需要添加几张图片资源来配合使用,在该项目的项目目录下新建文件夹images,文件夹中添加几张图片,这里我在开源中国中找了几张图片来作为演示,资源添加好后在Qt的工程中选择添加新文件,新建一个资源文件,示例如下所示:

新建一个images.qrc

185854_bwgD_1997634.png

选择add ->add Prefix,在Prefix栏中添加“/”

190108_xBWO_1997634.png

然后单击add ->add files 将要添加的图片资源添加进来就可以了!如下图所示:

190440_dv33_1997634.png

最后对CommandLinkButton按钮进行槽函数的添加与完善!

具体代码如下所示:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QStringList>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_commandLinkButton_clicked();

private:
    Ui::MainWindow *ui;

    QStringList list;
    int currentImage;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->currentImage = 0;

    this->list << ":/images/1.jpg"<<":/images/2.gif";
    ui->label->setBackgroundRole(QPalette::Base);
    ui->label->setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored);
    ui->label->setScaledContents(true);
    resize(500,400);
    QString fileName = list.at(this->currentImage);
    if(!fileName.isEmpty())
    {
        QImage image(fileName);
        if(image.isNull())
        {
            QMessageBox::information(this,tr("image Viewer"),tr("Can not load %1.").arg(fileName));
            return;
        }
        ui->label->setPixmap(QPixmap::fromImage(image));
    }
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_commandLinkButton_clicked()
{
    if(this->currentImage == 1)
        this->currentImage = 0;
    else
        this->currentImage++;
    QString fileName = list.at(this->currentImage);
    if(!fileName.isEmpty())
    {
        QImage image(fileName);
        if(image.isNull())
        {
              QMessageBox::information(this,tr("image Viewer"),tr("Can not load %1.").arg(fileName));
              return;
        }
        ui->label->setPixmap(QPixmap::fromImage(image));
    }
}

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

好了,程序到这里应该可以成功运行了,来看一下我的运行结果,(*^__^*) 嘻嘻……

191952_ow1G_1997634.png

好了,今天就到这吧,fuck……,我还有个Bug没改,赶紧撤了!

转载于:https://my.oschina.net/hippiedom/blog/338233

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值