vuletic
9th December 2014, 11:45
Hello, I'm new to QT I'm trying to make a simple texteditor but I have problem with connecting push button to make my TextEdit change current font to Bold/Underline/Italic, this is how my program looks like at moment: http://i.imgur.com/5d6A82M.png
This is my mainwindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mydialog.h"
#include "ui_mydialog.h"
#include <QLabel>
#include <QFontComboBox>
#include<QPushButton>
#include<QLineEdit>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QTextEdit* myTextWindow = new QTextEdit;
setCentralWidget(myTextWindow);
QLabel* myLabelForFontComboBox = new QLabel;
ui->toolBar->addWidget(myLabelForFontComboBox);
myLabelForFontComboBox->setText("Font");
QFontComboBox* myFontComboBox = new QFontComboBox;
ui->toolBar->addWidget(myFontComboBox);
connect(myFontComboBox,SIGNAL(currentFontChanged(Q Font)),myTextWindow,SLOT(setCurrentFont(QFont)));//<---- this works
QPushButton* myBoldButton = new QPushButton;
myBoldButton->setMaximumWidth(20);
ui->toolBar->addWidget(myBoldButton);
myBoldButton->setStyleSheet("QPushButton {color: black; font: bold}");
myBoldButton->setText("B");
connect(myBoldButton,SIGNAL(clicked()),myTextWindo w,SLOT(setFontWeight(int)));// <--- this doesn't work
//myTextWindow->setFontWeight(QFont::Bold); <---- this works
//myTextWindow->setFontUnderline(QFont::UnderlineResolved);<---- this works
//myTextWindow->setFontItalic(QFont::StyleItalic);<---- this works
QPushButton* myItalicButton = new QPushButton;
myItalicButton->setMaximumWidth(20);
ui->toolBar->addWidget(myItalicButton);
myItalicButton->setStyleSheet("QPushButton {color: black; font: italic}");
myItalicButton->setText("I");
//connect(myItalicButton,SIGNAL(pressed()),myTextWin dow,SLOT(setFontItalic(bool))); <---- this doesn't work
QPushButton* myUnderLineButton = new QPushButton;
myUnderLineButton->setMaximumWidth(20);
ui->toolBar->addWidget(myUnderLineButton);
myUnderLineButton->setStyleSheet("QPushButton {color: black; font: bold}");
myUnderLineButton->setText("U");
// connect(myUnderLineButton,SIGNAL(toggled(bool)),my TextWindow,SLOT(setFontUnderline(bool))); <---- this doesn't work
QLineEdit* mySearchSpace = new QLineEdit;
mySearchSpace->setMaximumWidth(100);
ui->toolBar->addWidget(mySearchSpace);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_actionPreference_triggered()
{
MyDialog Option;
Option.setModal(true);
Option.exec();
}
and this is my mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_actionPreference_triggered();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
Any advice on this matter or anything else concerning my code, is appreciated.
Thanks.
This is my mainwindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mydialog.h"
#include "ui_mydialog.h"
#include <QLabel>
#include <QFontComboBox>
#include<QPushButton>
#include<QLineEdit>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QTextEdit* myTextWindow = new QTextEdit;
setCentralWidget(myTextWindow);
QLabel* myLabelForFontComboBox = new QLabel;
ui->toolBar->addWidget(myLabelForFontComboBox);
myLabelForFontComboBox->setText("Font");
QFontComboBox* myFontComboBox = new QFontComboBox;
ui->toolBar->addWidget(myFontComboBox);
connect(myFontComboBox,SIGNAL(currentFontChanged(Q Font)),myTextWindow,SLOT(setCurrentFont(QFont)));//<---- this works
QPushButton* myBoldButton = new QPushButton;
myBoldButton->setMaximumWidth(20);
ui->toolBar->addWidget(myBoldButton);
myBoldButton->setStyleSheet("QPushButton {color: black; font: bold}");
myBoldButton->setText("B");
connect(myBoldButton,SIGNAL(clicked()),myTextWindo w,SLOT(setFontWeight(int)));// <--- this doesn't work
//myTextWindow->setFontWeight(QFont::Bold); <---- this works
//myTextWindow->setFontUnderline(QFont::UnderlineResolved);<---- this works
//myTextWindow->setFontItalic(QFont::StyleItalic);<---- this works
QPushButton* myItalicButton = new QPushButton;
myItalicButton->setMaximumWidth(20);
ui->toolBar->addWidget(myItalicButton);
myItalicButton->setStyleSheet("QPushButton {color: black; font: italic}");
myItalicButton->setText("I");
//connect(myItalicButton,SIGNAL(pressed()),myTextWin dow,SLOT(setFontItalic(bool))); <---- this doesn't work
QPushButton* myUnderLineButton = new QPushButton;
myUnderLineButton->setMaximumWidth(20);
ui->toolBar->addWidget(myUnderLineButton);
myUnderLineButton->setStyleSheet("QPushButton {color: black; font: bold}");
myUnderLineButton->setText("U");
// connect(myUnderLineButton,SIGNAL(toggled(bool)),my TextWindow,SLOT(setFontUnderline(bool))); <---- this doesn't work
QLineEdit* mySearchSpace = new QLineEdit;
mySearchSpace->setMaximumWidth(100);
ui->toolBar->addWidget(mySearchSpace);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_actionPreference_triggered()
{
MyDialog Option;
Option.setModal(true);
Option.exec();
}
and this is my mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_actionPreference_triggered();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
Any advice on this matter or anything else concerning my code, is appreciated.
Thanks.