У меня есть три чекбокса, QFontComboBox и QSpinBox, а также главное текстовое поле QTextEdit.
Нужно сделать так, чтобы SpinBox изменял размер шрифта, чекбоксы делали текст курсивным, подчеркнутым и полужирным соответственно.
Чекбоксы пробую сделать так:
// чекбоксы
if (ItalyStyle->isChecked()) {
MainTextEdit->setFontItalic(true);
}
if (BoldStyle->isChecked()) {
MainTextEdit->setFontWeight(true);
}
if (UnderLineStyle->isChecked()) {
MainTextEdit->setFontUnderline(true);
}
Не работает. Если не сложно, помогите.
И еще вопрос - Как установить формат шрифта из QFontComboBox?
У класса QCheckBox имеется такой сигнал stateChanged(int state)
.
Если вы хотите один обработчикдля всех чекбоксов, делайте так:
class MainClass : ... {
Q_OBJECT
//...
private slots:
void checkBoxChanged(int state);
//..
}
Реализация:
MainClass::MainClass(QWidget* parent) : QMainWindow(parent) {
// ...
QTextEdit* MainTextEdit = new QTextEdit(this);
// ! Обязательно надо задать имя, иначе мы его не найдем
MainTextEdit->setObjectName("MainTextEdit");
connect(ItalyStyle, SIGNAL(stateChanged(int)), this, SLOT(checkBoxChanged(int)));
connect(BoldStyle, SIGNAL(stateChanged(int)), this, SLOT(checkBoxChanged(int)));
connect(UnderLineStyle, SIGNAL(stateChanged(int)), this, SLOT(checkBoxChanged(int)));
// ...
}
void MainClass::checkBoxChanged(int state)
{
// Ищем нужный виджет по его имени
QTextEdit* MainTextEdit = findChild<QTextEdit*>("MainTextEdit");
if( MainTextEdit != nullptr )
{
// Выбираем нужный чекбокс по имени переменной
if( sender()->objectName() == "ItalyStyle" )
MainTextEdit->setFontItalic(state == Qt::Checked);
else if( sender()->objectName() == "BoldStyle" )
MainTextEdit->setFontWeight(state == Qt::Checked);
else if( sender()->objectName() == "UnderLineStyle" )
MainTextEdit->setFontUnderline(state == Qt::Checked);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
На Windows в Visual Studio было достаточно раскидать файлы по специальным папкам и прописать:
Уважаемые сэнсэи, гуру и мастера Йоды Java, нужна подмогаСитуация тривиальная, но тревожащая мой покой
У меня есть небольшая программа, в которой есть ComboBox элементДанный элемент принимет 5 значений для примера
Сейчас изучаю ввод-вывод, столкнулся с таким понятие как каталог, не очень понимаю что это, можете объяснить?