С помощью combobox пытаюсь изменять размер изображение. Делаю это вот таким образом. Но не могу понять, почему в comboBox ничего не отображается. Подскажите, пожалуйста, в чём проблема и как можно её исправить?
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QFileDialog>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setFixedSize(QSize(width(), height()));
QString pic = " ";
ui->lineEdit->setText(pic);
QPixmap pix;
pix.load(pic);
//ui->label_photo->resize(pix.size());
ui->label_photo->setPixmap(pix);
}
MainWindow::~MainWindow()
{
delete ui;
}
QString MainWindow::pic()
{
return ui->lineEdit->text();
}
void MainWindow::on_pushButton_clicked()
{
QString photo = QFileDialog::getOpenFileName(this,"load img",QString(),"Images (*.jpg *png)");
ui->lineEdit->setText(photo);
ui->label_photo->setPixmap(photo);
qDebug()<<photo;
}
void MainWindow::on_pushButton_2_clicked()
{
QImage picture (ui->lineEdit->text());
picture.load(ui->lineEdit->text());
ui->label_2->setPixmap(QPixmap::fromImage(picture));
QRgb tc = qRgb (243, 88, 165);
for (int i = 0; i < picture.width(); i++)
{
for (int j = 0; j < picture.height(); j++)
{
if (picture.pixel(i, j)== qRgb(0, 0, 0))
{
picture.setPixel(i, j, tc);
}
}
}
ui->label_2->setPixmap(QPixmap::fromImage(picture));
}
void MainWindow::on_pushButton_3_clicked()
{
QImage picture;
picture.load(ui->lineEdit->text());
QMatrix matrix;
matrix.scale(-1, 1);
picture = picture.transformed(matrix);
ui->label_2->setPixmap(QPixmap::fromImage(picture));
}
void MainWindow::on_pushButton_4_clicked()
{
// QPixmap pic2;
// pic2.load(ui->lineEdit->text());
// QSize PicSize(500, 500);
// pic2 = pic2.scaled(PicSize,Qt::KeepAspectRatio);
// ui->label_2->setPixmap(pic2);
// ui->label_2->repaint();
}
void MainWindow::on_comboBox_activated(const QString &arg1)
{
if (arg1 == "500x500") {
QPixmap pic2;
pic2.load(ui->lineEdit->text());
QSize PicSize(500, 500);
pic2 = pic2.scaled(PicSize,Qt::KeepAspectRatio);
ui->label_2->setPixmap(pic2);
ui->label_2->repaint();
qDebug()<<pic2;
}
else if (arg1 == "700x700") {
QPixmap pic2;
pic2.load(ui->lineEdit->text());
QSize PicSize(700, 700);
pic2 = pic2.scaled(PicSize,Qt::KeepAspectRatio);
ui->label_2->setPixmap(pic2);
ui->label_2->repaint();
}
}
Я не совсем корректно передал комбобоксу наименования. Изменения масштаба я переделал таким образом:
void MainWindow::on_pushButton_4_clicked()
{
int i = ui->comboBox->currentIndex();
switch (i) {
case 0: {
QPixmap pic2;
pic2.load(ui->lineEdit->text());
QSize PicSize(320, 200);
pic2 = pic2.scaled(PicSize,Qt::KeepAspectRatio);
ui->label_2->setPixmap(pic2);
ui->label_2->repaint();
break;
}
case 1: {
QPixmap pic2;
pic2.load(ui->lineEdit->text());
QSize PicSize(640, 350);
pic2 = pic2.scaled(PicSize,Qt::KeepAspectRatio);
ui->label_2->setPixmap(pic2);
ui->label_2->repaint();
break;
}
case 2: {
QPixmap pic2;
pic2.load(ui->lineEdit->text());
QSize PicSize(640, 480);
pic2 = pic2.scaled(PicSize,Qt::KeepAspectRatio);
ui->label_2->setPixmap(pic2);
ui->label_2->repaint();
break;
}
case 3: {
QPixmap pic2;
pic2.load(ui->lineEdit->text());
QSize PicSize(800, 600);
pic2 = pic2.scaled(PicSize,Qt::KeepAspectRatio);
ui->label_2->setPixmap(pic2);
ui->label_2->repaint();
break;
}
case 4: {
QPixmap pic2;
pic2.load(ui->lineEdit->text());
QSize PicSize(1024, 768);
pic2 = pic2.scaled(PicSize,Qt::KeepAspectRatio);
ui->label_2->setPixmap(pic2);
ui->label_2->repaint();
break;
}
default:
break;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Всем приветВторой день бьюсь головой и не могу наследоваться от класса QNetworkReply
Есть такой простой пример, в котором происходит использование пула на 70 потоков и создание в каждом std::promise:
я стараюсь не использовать цикл while, потому что он мне не нравитьсяНо мне нужно вызвать функцию ReceiveAndPrint и проверить ее, не равна ли она 0, после...