Russian Qt Forum
Май 05, 2024, 13:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2
1  Qt / 2D и 3D графика / Арифметические символы TimesNewRoman в Qt : Июль 07, 2021, 15:07
Здравствуйте! Как подключить и использовать символы TimesNewRoman в C++ QT?
2  Qt / 2D и 3D графика / Создание редактируемого поля : Июль 05, 2021, 12:52
Здравствуйте. Мне нужно создать редактируемое поле на графической сцене, чтобы можно было туда записывать числа. Как это можно сделать?

Т.е это должен быть вектор типа 'знакоместо'? Какой тип использовать? QPlace не поддерживается.
Код:
private:
    QVector<'Знакоместо'> items[2];
3  Qt / Общие вопросы / Как анимировать нарисованную фигуру? : Март 29, 2021, 20:43
Здравствуйте. Прошу помочь. Как можно реализовать простую анимация изменения размера прямоугольника при нажатии на кнопку? Необходимо использовать только QVariantAnimation. В интернете мало примеров работы с ним.


Код:
void MainWindow:: paintEvent(QPaintEvent *)
{
 
    // Алгоритм построения изображения:
 
 // Создаем объект-"художник" и привязываем его к контексту виджета
    QPainter painter(this);
 
    // Включаем сглаживание линий
    painter.setRenderHint(QPainter::Antialiasing, true);
 
        // Маленький прямоугольник (участок цепи)
 
    QBrush br(QColor(0, 255, 0), Qt::DiagCrossPattern);  // Создаём кисть(для заливки фигуры)
    painter.setBrush(br);
 
    painter.drawRect(225, 120, 100, 50);   // Рисуем прямоугольник
 
}
 
 
void MainWindow::on_pushButton_clicked()
{
 
    // Создаём анимацию
 
    QVariantAnimation* animation = new QVariantAnimation(this);
 
      animation->setDuration(5000);
 
   animation->setStartValue(QRect(225, 120, 100, 50)); // Задаём начальное значение
 
    animation->setEndValue(QRect(225, 120, 200, 100));   // Задаём конечное значение
 
 
         connect(animation,
                 &QVariantAnimation::valueChanged, [this](QVariant value)
        {
             //..Не понимаю, что нужно делать
 
 
             update();
         });
 
    // Запускаем анимацию
    animation->start();
 
}
4  Qt / Вопросы новичков / Как анимировать нарисованную фигуру? : Март 28, 2021, 14:16
Каким образом можно анимировать изменения цвета или размера(задать другие координаты) нарисованного эллипса, прямоугольника, линии (QPainter) и тд?
5  Qt / 2D и 3D графика / Анимация простого прямоугольника при нажатии на кнопку. QVariantAnimation. QRect : Март 26, 2021, 11:42
Здравствуйте. Прошу помочь. Как можно реализовать простую анимация изменения размера прямоугольника при нажатии на кнопку? Необходимо использовать только QVariantAnimation. В интернете мало примеров работы с ним.

Код:
void MainWindow:: paintEvent(QPaintEvent *)
{

    // Алгоритм построения изображения:

 // Создаем объект-"художник" и привязываем его к контексту виджета
    QPainter painter(this);

    // Включаем сглаживание линий
    painter.setRenderHint(QPainter::Antialiasing, true);

        // Маленький прямоугольник (участок цепи)

    QBrush br(QColor(0, 255, 0), Qt::DiagCrossPattern);  // Создаём кисть(для заливки фигуры)
    painter.setBrush(br);

    painter.drawRect(225, 120, 100, 50);   // Рисуем прямоугольник

}


void MainWindow::on_pushButton_clicked()
{

    // Создаём анимацию

    QVariantAnimation* animation = new QVariantAnimation(this);

      animation->setDuration(5000);

   animation->setStartValue(QRect(225, 120, 100, 50)); // Задаём начальное значение

    animation->setEndValue(QRect(225, 120, 200, 100));   // Задаём конечное значение


         connect(animation,
                 &QVariantAnimation::valueChanged, [this](QVariant value)
        {
             //..Не понимаю, что нужно делать


             update();
         });

    // Запускаем анимацию
    animation->start();

}
6  Qt / 2D и 3D графика / Re: QPainter. File not found: moc_mainwindow.cpp. В чем проблема? : Март 23, 2021, 20:47
MYPLOT.pro
Код:
 


QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target



Вот содержимое папки:
7  Qt / 2D и 3D графика / QPainter. File not found: moc_mainwindow.cpp. В чем проблема? : Март 23, 2021, 20:32
Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QPainter>
 
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
 
private:
    Ui::MainWindow *ui;
 
protected:
    void paintEvent(QPaintEvent *) override;
};
 
#endif // MAINWINDOW_H

Не понимаю, в чём проблема. При запуске проекта выводит эти ошибка. Я создал новый проект в пустой папке? Что пошло не так?

При подключении <QPainter> почему-то подчеркивается красным.

8  Qt / Пользовательский интерфейс (GUI) / Re: Динамическое заполнение формы на основе значений, введенных пользователем. : Март 16, 2021, 21:00
Код:
void MainWindow::on_pushButton_clicked()
{
   
    for(int i =0 ; i < 3; i++)
    {
       box1 = new QCheckBox;
       ui ->verticalLayout->addWidget(box1);
       box1 ->setChecked(true);
       connect(box1,  SIGNAL(clicked()), this, SLOT(on_pushButton2_clicked()));
    }
}


void MainWindow::on_pushButton2_clicked()
{

    for(QCheckBox*box : findChildren<QCheckBox*>())
    {
           box->setChecked(false);
           connect(box,  SIGNAL(clicked()), this, SLOT(on_pushButton3_clicked()));

    }

}

void MainWindow::on_pushButton3_clicked()
{
    for(QCheckBox*box : findChildren<QCheckBox*>())
    {
           box->setChecked(true);
           connect(box,  SIGNAL(clicked()), this, SLOT(on_pushButton2_clicked()));

    }

}

Спасибо, работает!  Дай Бог тебе здоровья.
9  Qt / Пользовательский интерфейс (GUI) / ДИНАМИЧЕСКОЕ создание и удаление виджетов QCheckBox : Март 16, 2021, 20:08
Всем привет. Нужна помощь. Необходимо добавить возможность удаления динамически созданных виджетов QCheckBox. Т.е я сначала заполняю форму определенным количеством QCheckBox, а затем, при нажатии на любой из них, они должны удаляться. Как такое провернуть?

Код:
void MainWindow::on_pushButton_clicked()
{


    for(int i =0 ; i < 3; i++)
    {
        box1 = new QCheckBox;
       ui ->verticalLayout->addWidget(box1);
       box1 ->setChecked(true);
       connect(box1,  SIGNAL(clicked()), this, SLOT(on_pushButton2_clicked()));

    }


     
}


void MainWindow::on_pushButton2_clicked()
{
   for(int i=0; i<3; i++)
    {
        ui->verticalLayout->removeWidget(box1);

    }
   
}
10  Qt / Пользовательский интерфейс (GUI) / Re: Динамическое заполнение формы на основе значений, введенных пользователем. : Март 16, 2021, 18:10
Нужно, чтобы при нажатии на любой из CheckBox-ов(создаются динамически) галочка убиралась не только у того CheckBox, на который нажал, но и у всех остальных. Т.е, при нажатии на ячейку с галочкой, галочка пропадает у всех ячеек одновременно. Надеюсь, правильно сформулировал.
11  Qt / Пользовательский интерфейс (GUI) / Re: Динамическое заполнение формы на основе значений, введенных пользователем. : Март 16, 2021, 16:56
Код:
void MainWindow::on_pushButton_clicked()
{
    for(int i = 0; i < 3; i++)
   {
 
        box = new QCheckBox(this);
        ui ->verticalLayout->addWidget(box);      // Добавление
         box->setChecked(true);                // Устанавливаем галочку по умолчанию
 
          connect(box, SIGNAL(clicked()), this, SLOT(on_pushButton2_clicked()));
          connect(box, SIGNAL(clicked()), this, SLOT(on_pushButton3_clicked()));
    }
}
 
void MainWindow::on_pushButton2_clicked()
{
   for(int i = 0; i < 3; i++)
  {
       ui->verticalLayout->removeWidget(box);
   }
}
 
 
void MainWindow::on_pushButton3_clicked()
{
    for(int i = 0; i < 3; i++)
   {
        box = new QCheckBox(this);
        ui ->verticalLayout->addWidget(box);      // Добавление
         box->setChecked(false);                // Устанавливаем галочку по умолчанию
 
    }
 
}

Т.е нужно как-то связать один QCheckBox со всеми остальными или лучше удалить все QCheckBox и заново заполнять окно новыми боксами без галочки/ с галочкой ?




12  Qt / Пользовательский интерфейс (GUI) / Динамическое заполнение формы на основе значений, введенных пользователем. : Март 12, 2021, 11:48
Здравствуйте, необходим совет. Как сделать так, чтобы при включении/выключении  одной  из  «Галочек» (QCheckBox),  изменении значения одного из полей,  изменении текста одного из полей ввода и тд,  соответствующим  образом менялось значения у всех остальных? С помощью чего это реализуется? С какими инструментами обычно работают?
13  Qt / Model-View (MV) / Re: Файловый ВВОД-ВЫВОД. СОХРАНЕНИЕ и ЗАГРУЗКА таблицы из файла : Март 08, 2021, 12:37
Вот так вроде работает:

Код:
QDataStream in(&file);
 in.setVersion(QDataStream::Qt_4_1);
Вот так вроде работает:
 
QList<MyCard> x;
in>>x;
if(!x.isEmpty())
{
    QMessageBox:: warning(this, "title", "ne pustoy");
}
_card.setCard(x);

Где :
void Card::setCard(const QList<MyCard> &card)
{
_card = card;
}
14  Qt / Model-View (MV) / Re: Файловый ВВОД-ВЫВОД. СОХРАНЕНИЕ и ЗАГРУЗКА таблицы из файла : Март 08, 2021, 08:50
Так по заданию нужно. Сказали работать с QList и QTableView. В этом то, видимо, и основная сложность лабы. Я чет хз только, как такое провернуть. Не понимаю, откуда подойти.
15  Qt / Model-View (MV) / Re: Файловый ВВОД-ВЫВОД. СОХРАНЕНИЕ и ЗАГРУЗКА таблицы из файла : Март 07, 2021, 22:49
Спасибо, кстати, а так можно сделать?:
Код:
QDataStream in(&file);
QList<MyCard> card;

in >> card;
Т.е нужно придумать метод для заполнения таблицы из card?
Страниц: [1] 2

Страница сгенерирована за 0.052 секунд. Запросов: 23.