QT——事件处理,图片的打开与保存

一、可视化界面设计
在这里插入图片描述二、connect进行信号和槽的连接

	connect( //connect连接,打开图片
		ui.openButton, //按钮的名字
		SIGNAL (clicked(bool) ),//信号对应的函数,查文本
		this,
		SLOT(OnOpenClicked(bool) )//槽对应的函数,可以实现响应功能
		);

	connect( //connect连接 保存图片
		ui.saveButton, //按钮的名字
		SIGNAL (clicked(bool) ),//信号对应的函数,查文本
		this,
		SLOT(OnSaveClicked(bool) )//槽对应的函数,可以实现响应功能
		);

三、加上处理函数(槽)

int First_QT::OnOpenClicked(bool checked)//要实现的函数
{
	QString fileName;
	fileName = QFileDialog::getOpenFileName(this,tr("Select Image"),"",tr("Images(*.png *.bmp *.jpg *.tif *.gif);;AllFiles(*.*)"));
    if(fileName.isEmpty())
    {
         return 0;
    }
    else
    {
        QImage img;
        if(!(img.load(fileName))) //加载图像
        {
            //QMessageBox::information(this, tr("打开图像失败"),tr("打开图像失败!"));
            return 0;
        }
        ui.inputLabel->setPixmap(QPixmap::fromImage(img));
	}
	return 0;
}

int First_QT::OnSaveClicked(bool checked)//要实现的函数
{
    QString fileName1 = QFileDialog::getSaveFileName(this,tr("Save Image"),"",tr("Images (*.png *.bmp *.jpg)")); //选择路径
	ui.inputLabel->pixmap()->toImage().save(fileName1);
	return 0;
}

四、运行结果
4.1打开图片
在这里插入图片描述在这里插入图片描述
在这里插入图片描述4.2保存图片
在这里插入图片描述
在这里插入图片描述
五、遇到的问题
在connect时,这两个按钮名字经常报错,提示“变量未定义”。
在这里插入图片描述我们只需要给.ui文件重新进行编译一下就可以了。
在这里插入图片描述

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您可以通过Qt的信号和槽机制来实现鼠标点击按钮图片放大的功能。 首先,您需要在界面上添加一个按钮和一个用于显示图片的控件。然后,使用Qt的信号和槽机制连接按钮的点击事件和图片的放大功能。 在连接信号和槽之前,您需要编写一个函数来处理图片的放大逻辑。您可以使用引用中描述的方法来实现图片的放大和缩小。 接下来,您可以将按钮的clicked()信号与放大函数进行连接,以便在按钮被点击时执行放大操作。 下面是一个示例代码,演示了如何使用Qt实现鼠标点击按钮图片放大的功能: ```cpp // 头文件中声明按钮和图片控件 #include <QPushButton> #include <QLabel> class MyWidget : public QWidget { Q_OBJECT public: MyWidget(QWidget *parent = nullptr) : QWidget(parent) { // 创建按钮和图片控件 QPushButton *button = new QPushButton("放大图片", this); QLabel *imageLabel = new QLabel(this); // 设置图片控件的大小和位置 imageLabel->setGeometry(100, 100, 200, 200); // 连接按钮的点击事件和放大函数 connect(button, &QPushButton::clicked, this, &MyWidget::zoomImage); } private slots: void zoomImage() { // 在这里实现图片放大的逻辑,可以参考引用中的方法 // 当按钮被点击时,图片放大显示 // 可以使用QLabel的setPixmap()来设置放大后的图片 // 当再次点击按钮时,图片恢复原大小 // 示例代码: static bool isZoomed = false; // 标记图片是否已放大 if (isZoomed) { // 图片已放大,执行缩小操作 // 可以使用QLabel的setPixmap()来设置缩小后的图片 // 可以使用QLabel的clear()函数来清除图片 } else { // 图片未放大,执行放大操作 // 可以使用QLabel的setPixmap()来设置放大后的图片 } isZoomed = !isZoomed; // 切换图片放大状态 } }; ``` 通过上述代码,您可以实现一个简单的Qt程序,当按钮被点击时,图片将放大显示。您可以根据自己的需求修改和完善代码,以达到更好的用户体验。 : 界面上有三张图片,当鼠标指针移动到某图片之上,该图片会放大显示,当鼠标移到另一张图片之上时,前一张图片变为原大小,后一张图片放大显示 : 可自适应显示图片,以鼠标位置为中心进行缩放,按住鼠标左键进行图片拖动,可添加截图方框并截图保存,可载入显示大部分tif格式的图,可显示伪彩,灰度图。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值